我有一個大型數據集,我需要將其隨機分爲5個幾乎相等大小的集合進行交叉驗證。我很高興地使用_crossvalind_
以前分成組,但是這次我需要一次將大塊數據分成這些組。Matlab:將大塊數據隨機分成相等大小的集合
比方說,我的數據是這樣的:
data = [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18];
然後我想他們隨機分成5組在2,如塊這樣
g1 = [3 4], [11 12]
g2 = [9 10]
g3 = [1 2], [15 16]
g4 = [7 8], [17 18]
g5 = [5 6], [13 14]
我想我可以用一些for循環做到這一點,但我猜必須有一個更具成本效益的方式做到這一點在MATLAB :-)
任何建議?
@R。 M .:你的最後一行有點複雜。爲什麼不把它替換爲:'g = reshape(data,groupSize,totalGroups)'; g = g(randOrder,:);' – Jonas 2011-04-02 19:51:04
@Jonas:謝謝,你是對的;那很複雜!我已經取代了這條線。 – abcd 2011-04-02 20:03:22
@ R。 M .:現在看起來就像我會回答的。 +1 :) – Jonas 2011-04-02 20:12:15