我有一个名为x的向量。 我想改变向量的元素,这些元素对于高斯随机数的绝对值是负的,其中std等于1并且意思是等于0.我使用下面的代码,但它不起作用。有人可以建议一种方法吗?
index = (x < 0); x(index) = abs(rand(1,index));
答案 0 :(得分:0)
设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))) ;
您的代码出现问题:
您的索引是逻辑,您不能使用逻辑来定义/获取随机数。注意,你不需要使用abs(rand)),rand只给你+ ve随机数。