Matlab,随机生成的值总是一样的

时间:2014-01-07 23:02:22

标签: matlab function random

在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]中返回一条直线而不是完全随机的“分段”函数。我该如何解决这个问题?

谢谢。

1 个答案:

答案 0 :(得分:3)

使用

R = 1+0.2.*randn(1)+0.*t;

您只生成一个随机数(randn(1)...),并将其全部复制到t...+0.*t)的大小。

您应该将其更改为

R = 1+0.2.*randn(size(t));

这将给出一组与t大小相同的独立随机值。