matrix of random distribution
2 views (last 30 days)
Show older comments
Chantal Lewis
on 22 Jul 2020
Commented: Karlyn Jones
on 31 Jul 2020
Hello,
How to i create a nxn matrix where each column represents a normal distribution and the values in each colum sum to 100? Thankyou
0 Comments
Accepted Answer
Jeff Miller
on 23 Jul 2020
n = 8; % whatever n you want
sd = 1; % whatever you want for the standard deviation of the normal distribution in each column
total = 100; % the total you want
x = randn(n,n) * sd;
for i=1:n
x(:,i) = x(:,i) - mean(x(:,i)) + total/n;
end
5 Comments
Bruno Luong
on 30 Jul 2020
Edited: Bruno Luong
on 30 Jul 2020
Those ztable is known as https://en.wikipedia.org/wiki/Normal_distribution#Cumulative_distribution_function can computed in MATLAB as following
ztab = @(z) (erf(z/sqrt(2))+1)/2;
z = (-1:0.1:1)'; % put here whatever the z values you want to compute
zt = ztab(z);
table(z,zt)
It produces this
z zt
____ _______
-1 0.15866
-0.9 0.18406
-0.8 0.21186
-0.7 0.24196
-0.6 0.27425
-0.5 0.30854
-0.4 0.34458
-0.3 0.38209
-0.2 0.42074
-0.1 0.46017
0 0.5
0.1 0.53983
0.2 0.57926
0.3 0.61791
0.4 0.65542
0.5 0.69146
0.6 0.72575
0.7 0.75804
0.8 0.78814
0.9 0.81594
1 0.84134
And here the value of ztab of 4 and 5
>> fprintf('z(4)=%1.16f\n', ztab(4))
z(4)=0.9999683287581669
>> fprintf('z(5)=%1.16f\n', ztab(5))
z(5)=0.9999997133484282
More Answers (0)
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!