如何在MATLAB中生成偏差从0.02到0.2的正态随机数?我尝试了以下操作,但得到一个错误:
dev = 0.02:0.02:0.2
x = random('Normal',1,dev,8,1) 发布于 2014-03-17 14:53:56
您可以这样做:
dev = 0.02:0.02:0.2;
randNumbersCell = arrayfun(@(d) random('Normal', 1, d, 8, 1), dev, 'UniformOutput', 0);发布于 2014-03-17 15:23:15
或者只使用一个简单的for循环。这里不需要任何花哨的东西:
dev = 0.02:0.02:0.2
n = length(dev);
x = zeros(8,n);
for col = 1:n
x(:, col) = random('Normal',1,dev(col),8,1)
end发布于 2014-03-17 18:06:57
标准差有10个值,我假设每个值都是8个随机值。
dev = 0.02:0.02:0.2; %// standard deviation values
mu = 1; %// mean
m = 8; %// desired number of random values for each standard deviation
result = mu + bsxfun(@times, dev(:), randn(1,m));它的工作原理是将一个“标准”随机变量(均值为0,偏差为1)乘以期望的偏差,然后再加上期望的平均值。
https://stackoverflow.com/questions/22448092
复制相似问题