2013-12-10 34 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