matrix of random distribution
    조회 수: 4 (최근 30일)
  
       이전 댓글 표시
    
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
채택된 답변
  Jeff Miller
      
 2020년 7월 23일
        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
  Bruno Luong
      
      
 2020년 7월 30일
				
      편집: Bruno Luong
      
      
 2020년 7월 30일
  
			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
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



