random numbers with mean-correction
2 ビュー (過去 30 日間)
古いコメントを表示
Hi,
I would like to generate random numbers with follow a normal distribution (randn) but mean-corrected with the following condition: sum(randon numbers)=K.
Where K is a constant.
Can anyone help me?
Thanks a lot.
0 件のコメント
採用された回答
その他の回答 (1 件)
Roger Stafford
2013 年 6 月 9 日
In preference to the method in fileexchange/9700, (even though I wrote it,) I would suggest a method that exhibits a normal distribution on the hyperplane defined by K.
Suppose each vector (sample) of numbers which must have a sum of K has n components and you wish to generate N such random vectors. Do this:
u = repmat(K/n,n,1);
V = null(u.');
P = bsxfun(@plus,u,V*randn(n-1,N));
Each of the N columns of P has n numbers which always sum to K. In the n-1 dimensional hyperplane defined by this requirement, the points do have a multivariate normal distribution.
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!