在MATLAB程序中,我想定义一个函数,该函数从高斯分布中返回随机生成的值,其中mean = 1且variance = 0.2。 到目前为止,我的功能很简单:
function R = r(t)
rng shuffle;
R = 1+0.2.*randn(1)+0.*t;
可悲的是,如果我执行以下代码
x=0:0.001:1; plot(x,r(x));
它将在区间[0,1]中返回一条直线而不是完全随机的“分段”函数。我该如何解决这个问题?
谢谢。
答案 0 :(得分:3)
使用
R = 1+0.2.*randn(1)+0.*t;
您只生成一个随机数(randn(1)...
),并将其全部复制到t
(...+0.*t
)的大小。
您应该将其更改为
R = 1+0.2.*randn(size(t));
这将给出一组与t
大小相同的独立随机值。