【问题标题】:Random number - Choose seed随机数 - 选择种子
【发布时间】:2013-03-27 23:57:30
【问题描述】:

由于一个项目,我必须使用正态分布的伪随机数。

在这方面,我一般都会把它记下来:

nn_u = complex((normrnd(0,1.0,size(H_u))),(normrnd(0,1.0,size(H_u))));
nn_v = complex((normrnd(0,1.0,size(H_u))),(normrnd(0,1.0,size(H_u))));
nn_w = complex((normrnd(0,1.0,size(H_u))),(normrnd(0,1.0,size(H_u))));
size(H_u) = [4096,1];

这样我就无法真正访问种子编号。我期望的是,使用上面提到的形式,将有 6 个种子,这意味着对于称为 normrnd 函数的六次中的任何一次都有一个不同的种子。

我现在想做的是生成六个独立的表示,就像上面发生的那样,只有一个种子点,我可以从[1,999] 范围内挑选出来。

为了实现这一点,我想以这种方式进行:

n = 4096;
nn_tmp = normrnd(0,1,[n*6,1]);
nn_u = complex(nn_tmp(1:n,1),nn_tmp(n+1:2*n,1));
nn_v = complex(nn_tmp(2*n+1:3*n,1),nn_tmp(3*n+1:4*n,1));
nn_w = complex(nn_tmp(4*n+1:5*n,1),nn_tmp(5*n+1:6*n,1));

但是这样,我无法直接访问种子;我什至不知道我要做的那种操作是否有任何强有力的理论验证。

欢迎任何支持。

【问题讨论】:

标签: matlab random gaussian normal-distribution


【解决方案1】:

我认为您可以使用rng 播种,然后使用randn 而不是normrnd 来解决您的问题

类似

SEED = 120; %for example
rng(SEED, 'twister');
nn_u = complex(randn(size(H_u)),randn(size(H_u)));
nn_v = complex(randn(size(H_u)),randn(size(H_u)));
nn_w = complex(randn(size(H_u)),randn(size(H_u)));

【讨论】:

    猜你喜欢
    • 2020-04-25
    • 1970-01-01
    • 2019-08-17
    • 1970-01-01
    • 2014-06-12
    • 1970-01-01
    • 2019-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多