标签: matlab random
我需要在[-a, a]之间生成随机数,而不是0。我可以通过randi(2*a + 1) - (a+1)来部分实现这一目标。但是,通过这样做,代码也可能返回值0,这是我想要避免的。
[-a, a]
0
randi(2*a + 1) - (a+1)
答案 0 :(得分:1)
您想要从一组大小2*a中选择随机数,因此请使用:
2*a
u = randi(2*a)-(a+1);
然后将所有0结果移至a:
a
u(u==0)=a;