liebe0708 发表于 2010-7-7 18:55

求助 一个向量x 有512位 其中随机的10位是正负1 怎么编啊

求助 一个向量x 有512位 其中随机的10位是正负1 怎么编啊

rocwoods 发表于 2010-7-8 00:50

从长为n的向量中随机选出m个位置,现成的函数用randperm
即:a = randperm(n);am = a(1:m);但是这样效率比较低,高的话自己写一个函数如下:
function r = randnchoosek(n,m)
%n:数组,需要从中随机选取m个不重复的元素
%r: 数组n中随机选取的m个不重复的元素
ln = length(n);
for i = 1:m
    ind = i-1+unidrnd(ln-i+1);
    a = n(ind);
    n(ind) = n(i);
    n(i) = a;
end
r = n(1:m);
生成随机正负1可以用randsrc这个函数。

liebe0708 发表于 2010-7-8 05:59

谢谢楼上的:lol :@$ :kiss:
页: [1]
查看完整版本: 求助 一个向量x 有512位 其中随机的10位是正负1 怎么编啊