在MATLAB中生成1和-1

时间:2018-09-07 04:58:03

标签: matlab random

如何在MATLAB中生成仅包含1和-1的随机向量?我正在寻找一个函数,该函数生成从一组(不一定为1:N)中得出的随机整数向量。

1 个答案:

答案 0 :(得分:6)

如果S是要从中随机绘制的一组值,并且要生成n值,则可以执行以下操作:

S = [-1,1];
n = 20;
M = S(randi(numel(S),n,1));

这将返回:

M = [-1 -1 -1 1 1 1 -1 1 1 1 -1 1 1 -1 1 -1 1 1 1 1]

randi生成范围为{1numel(S)]的随机整数,它等效于数组S中的随机索引。您可以使用这些索引来索引S以获得值。

这适用于任何S

S = 2.^[0:10];
M = S(randi(numel(S),1,10));

返回:

M = [2 256 1 8 8 1 1 2 1024 16]