2013-12-10 14 views
0

对不起,如果这是比较简单的,但我是新来的Matlab和努力学习的绳索。我问的只是以下内容。我是一个随机选择一个数字的函数,只有它的选项是-3,-1,1, and 1。我想要做的就是下面这样的事情。有Matlab的随机选择从少数一些我指定

clear; 
N=10e5; 
B=randint(1,N,[-3 || -1 || 1 || 3]); 
Bmean=sum(B)/N 
Bvar=sum((B-Bmean).^2)/(N-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是从统计工具箱。不知道你有没有。

+0

即datasample功能正是我一直在寻找。谢谢! 现在我只需要弄清楚如何使它显示每个可能结果的概率。 – Dom

+0

@Dom酷。所以接受答案将是最高度赞赏:-) – Marcin

+0

刚接受它。 :) – Dom

3

为什么不仅生成随机指数:

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

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

+0

这也有窍门。 – Dom

+0

+1不依赖于工具箱 – mor22