【发布时间】:2017-05-24 03:31:23
【问题描述】:
我有一个名为 x 的向量。 我想将向量的元素更改为高斯随机数的绝对值,std 等于 1,平均值等于 0。我使用了下面的代码,但它不起作用。有人可以建议一种方法吗?
index = (x < 0); x(index) = abs(rand(1,index));
【问题讨论】:
我有一个名为 x 的向量。 我想将向量的元素更改为高斯随机数的绝对值,std 等于 1,平均值等于 0。我使用了下面的代码,但它不起作用。有人可以建议一种方法吗?
index = (x < 0); x(index) = abs(rand(1,index));
【问题讨论】:
让A成为你的矩阵,将负元素变为随机数,你可以使用:
A = [-1 -2 3 4 5 -1 0 9 ] ;
mu = 0; sigma = 1 ;
idx = A<0 ;
A(idx) = abs(normrnd(mu,sigma,1,nnz(idx))) ;
你的代码有问题:
你的 index 是逻辑的,你不能使用逻辑来定义/获取随机数。请注意,您不需要使用 abs(rand)),rand 只为您提供 +ve 随机数。
【讨论】: