<分区>
在 Matlab 中,我需要随机生成符号(即 {-1,1})。我想出了一个解决方案,但我需要它更轻。我的解决方案意味着调用两个函数,一个乘法(尽管它是二进制移位)和一个减法。
这是我的代码:
L=1000;
x=2*round(rand(L,1))-1;
<分区>
在 Matlab 中,我需要随机生成符号(即 {-1,1})。我想出了一个解决方案,但我需要它更轻。我的解决方案意味着调用两个函数,一个乘法(尽管它是二进制移位)和一个减法。
这是我的代码:
L=1000;
x=2*round(rand(L,1))-1;
最佳答案
当随机数大于0.5
时,使用以下方法获取+1
,否则为-1
:
(rand(L,1) > 0.5)*2 - 1
或者类似randi
:
randi([0,1], L, 1)*2 - 1
关于performance - 如何在matlab中高效生成随机符号/{-1,1}?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40029899/