我知道MATLAB的datasample
允許從某個選擇k
次。假設population=[1,2,3,4]
,我想統一採樣,替換,k=5
次。然後:MATLAB:隨機抽樣多次?
datasample(population,k)
ans =
1 3 2 4 1
現在,我想重複上述實驗N=10000
倍,而無需使用一個for循環。我試圖做:
datasample(repmat(population,N,1),5,2)
但輸出我得到的是(只是一個簡短的摘錄如下):
1 3 2 1 3
1 3 2 1 3
1 3 2 1 3
1 3 2 1 3
1 3 2 1 3
1 3 2 1 3
1 3 2 1 3
1 3 2 1 3
1 3 2 1 3
每一行(實驗的結果)是一樣的!但顯然他們應該是不同的......就好像一些隨機種子不在行之間更新。我怎樣才能解決這個問題?或者我可以使用的其他方法避免for循環?謝謝!
你和rayryeng有相同的解決方案。非常感謝,它的工作原理!你的觀點更簡潔一些,所以我會接受它作爲答案。 –
@space_voyager - 很酷。請記住,我寫的代碼可以推廣到任何你想要的人口向量。 Daniel編碼的假設是總體向量總是爲'1:p',其中'p'是所需元素的數量。無論哪種方式,祝你好運! – rayryeng
@rayryeng:「假設你的人口總是1:p,你可以簡化爲」;) – Daniel