我有一个大型数据集,我需要将其随机分为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