【问题标题】:Generating 1s and -1s in MATLAB [duplicate]在 MATLAB 中生成 1 和 -1 [重复]
【发布时间】:2018-09-07 04:58:03
【问题描述】:

如何在 MATLAB 中生成仅由 1 和 -1 组成的随机向量?我正在寻找一个函数,它可以生成从集合中抽取的随机整数向量,不一定是 1:N。

【问题讨论】:

  • 生成0到1的整数,乘以2减1。0*2-1 = -1; 1*2-1 = 1.
  • 是哪一个? 1 和 -1 还是一些选择?
  • 只适用于 1 和 -1,乘以 2 并减去 1 有效。谢谢!

标签: matlab random


【解决方案1】:

如果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 在 [1,numel(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]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-10
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 2014-04-02
    相关资源
    最近更新 更多