首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在matlab中生成偏差从0.02到0.2的正态随机数

在matlab中生成偏差从0.02到0.2的正态随机数
EN

Stack Overflow用户
提问于 2014-03-17 14:21:09
回答 3查看 122关注 0票数 0

如何在MATLAB中生成偏差从0.02到0.2的正态随机数?我尝试了以下操作,但得到一个错误:

代码语言:javascript
运行
复制
dev = 0.02:0.02:0.2  
x = random('Normal',1,dev,8,1)   
EN

回答 3

Stack Overflow用户

发布于 2014-03-17 14:53:56

您可以这样做:

代码语言:javascript
运行
复制
dev = 0.02:0.02:0.2; 
randNumbersCell = arrayfun(@(d) random('Normal', 1, d, 8, 1), dev, 'UniformOutput', 0);
票数 2
EN

Stack Overflow用户

发布于 2014-03-17 15:23:15

或者只使用一个简单的for循环。这里不需要任何花哨的东西:

代码语言:javascript
运行
复制
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
票数 0
EN

Stack Overflow用户

发布于 2014-03-17 18:06:57

标准差有10个值,我假设每个值都是8个随机值。

代码语言:javascript
运行
复制
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)乘以期望的偏差,然后再加上期望的平均值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22448092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档