MATLAB Answers

I need to find 10000 ramdom # in the range of (0.078,0.0078) for mass and (2, 0.1) for diameter. Then calculate the density of the 10k and do a histogram of them. Can anybody help me please?. This is what I got so far but is not working.

1 view (last 30 days)
Shirly S
Shirly S on 29 Aug 2016
Edited: Walter Roberson on 14 Jan 2017
clc, clear
%samples for the mass
a1 = 0.078;
b1 = 0.0078;
m = b1.*randn(10000,1)+a1;
%samples for the diameter
a2 = 2;
b2 = 0.1;
d = b2.*randn(10000,1)+a2;
%finding the density
density = (m/((4/3).*pi.*(d/2).*(d/2).*(d/2)));


Sign in to comment.

Answers (2)

Azzi Abdelmalek
Azzi Abdelmalek on 29 Aug 2016
You mean in the range of [0.0078 0.078] not [0.078, 0.0078], because 0.0078 is less then 0.078.
a1 = 0.078;
b1 = 0.0078;
m = a1.*rand(10000,1)+b1

  1 Comment

John D'Errico
John D'Errico on 29 Aug 2016
Please stop adding answers every time you want to make a simple comment. There is a link for comments. Use it.
Moved answer by Shirly into a comment:
"the values for my density are zeros and the histogram is blank"

Sign in to comment.

Image Analyst
Image Analyst on 30 Aug 2016
Try this:
clc; % Clear the command window.
close all; % Close all figures (except those of imtool.)
clear; % Erase all existing variables. Or clearvars if you want.
workspace; % Make sure the workspace panel is showing.
format long g;
format compact;
fontSize = 20;
% Create samples for the mass with specified mean and standard deviation.
meanMass = 0.078;
sdMass = 0.0078;
mass = sdMass .* randn(10000,1)+ meanMass;
% Create samples for the diameter with specified mean and standard deviation.
meanDiameter = 2;
sdDiameter = 0.1;
diameters = sdDiameter .* randn(10000,1) + meanDiameter;
% Find the volumes
volumes = (4/3) * pi * (diameters/2) .^ 3;
% Find the density
density = mass ./ volumes;
grid on;
title('Density Distribution', 'FontSize', 15);
xlabel('Density', 'FontSize', 15);
ylabel('Count', 'FontSize', 15);


Image Analyst
Image Analyst on 30 Aug 2016
Other than non-descriptive variable names, the main error was using m slash instead of m dot slash, which will do an element by element divide instead of a matrix inverse.
Also, please read this for your future posts.

Sign in to comment.

Sign in to answer this question.


No tags entered yet.