2015-05-20 50 views
1

例如,如何隨機生成包含8個0 s和4個1 s的1乘12矩陣?如何在Matlab中隨機生成n 0s和m 1s的矩陣?

喜歡這個矩陣[1 0 0 1 0 0 0 1 0 0 1 0]

如果我再次生成,它返回一個不同的矩陣[0 0 1 0 0 1 1 0 1 0 0 0]

+1

你的意思是4個月零8個月還是8個月零4個月?因爲你說前者,但舉例說後者。 – fhdrsdg

+2

對不起,我犯了這個愚蠢的錯誤......我真的沒關係。 – Caceros

+0

沒問題,謝謝糾正 – fhdrsdg

回答

1

這個也可以。

x = zeros(12,1); 
tmp = rand(12,1); 
[~,ind] = sort(tmp); 
x(ind(1:4)) = 1; 

不知道是否比其他例子更好,但它是做一個方式。我會說這是一個類似於fhdrsdg的解決方案,但是這個不需要統計工具箱。也可能這種解決方案可能不像matlabs解決方案可能具有的那樣高雅,儘管和randsample具有比這個示例更多的特徵。