让Matlab从我指定的少数几个中随机选择一个数字

时间:2013-12-10 05:40:59

标签: matlab

抱歉,如果这相对简单,但我是Matlab的新手,并试图学习绳索。我要问的只是以下内容。我是一个函数,它将随机选择一个数字,其唯一选项是-3,-1,1, and 1。我试图做的是下面的事情。

clear;
N=10e5;
B=randint(1,N,[-3 || -1 || 1 || 3]);
Bmean=sum(B)/N
Bvar=sum((B-Bmean).^2)/(N-1)

但显然我无法以这种方式设置范围。

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

为什么不生成随机索引:

A = [-3 -1 1 3];
idx = randint(1, N, numel(A)) + 1;
B = A(idx);

幸运的是,这是内置功能,不需要额外的工具箱。

答案 1 :(得分:1)

这个怎么样:

N = 10; I assume N is sample size you want.
B = datasample([-3,-1,1, 1], N);
B =
    -3     1     1     1     1     1    -1     1    -3     1

datasample来自统计工具箱。不确定你是否拥有它。