【问题标题】:Matlab, randomly generated value is always the sameMatlab,随机生成的值总是一样的
【发布时间】:2014-01-07 23:02:21
【问题描述】:

在 MATLAB 程序中,我想定义一个函数,该函数从均值 = 1 且方差 = 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] 中返回一条直线,而不是完全随机的“分段”函数。我该如何解决这个问题?

谢谢。

【问题讨论】:

    标签: matlab function random


    【解决方案1】:

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

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

    你应该把它改成

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

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

    【讨论】:

    • 它有效,谢谢。为什么我对“R”的定义不起作用?
    • @user3103071:尝试再次阅读此答案,它已经解释了。
    • @user3103071 查看我的回答。你只生成一个随机值,然后根据t的大小简单地复制它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-02
    • 2010-12-25
    相关资源
    最近更新 更多