1
我需要从1点巨大原始矩阵理清几个小矩阵...根据排序第一列(第一列含有任1,2或3)...MATLAB:排序和随机
如果第一列为1,然后随机选择75%的1保存在文件A1中,25%保存在文件A2中。
如果第一列为2,则随机选择75%的2保存在文件B1中,25%的2保存在文件B2中。
如果第一列为3,则随机选择文件C1中3个保存的75%,文件C2中3个保存的25%。
我该怎么写代码?
实施例:
原始矩阵15已行×6列:
7行是第1列1,行5是在第一列2和3行第1列是3。
1 -0.05 -0.01 0.03 0.07 0.11
1 -0.4 -0.36 -0.32 -0.28 -0.24
1 0.3 0.34 0.38 0.42 0.46
1 0.75 0.79 0.83 0.87 0.91
1 0.45 0.49 0.53 0.57 0.61
1 0.8 0.84 0.88 0.92 0.96
1 0.05 0.09 0.13 0.17 0.21
2 0.5 0.54 0.58 0.62 0.66
2 0.4 0.44 0.48 0.52 0.56
2 0.9 0.94 0.98 1.02 1.06
2 0.85 0.89 0.93 0.97 1.01
2 0.75 0.79 0.83 0.87 0.91
3 0.36 0.4 0.44 0.48 0.52
3 0.6 0.64 0.68 0.72 0.76
3 0.4 0.44 0.48 0.52 0.56
7行第1列有1,随机取出的7行(也就是7 * 0.75 = 5.25)75%是新的矩阵(5rows×6列),25%的其余部分成为另一新矩阵
5列在第1列中得到2,随机抽取5行(即5 * 0.75 = 3.75)的75%作为新矩阵(4行×6列),其余25%成为另一新矩阵
3行第一列取3,随机抽取3行(即3 * 0.75 = 2.25)的75%为新矩阵(2行×6列),其余25%成为另一个新矩阵
结果:
A1=
1 -0.4 -0.36 -0.32 -0.28 -0.24
1 0.3 0.34 0.38 0.42 0.46
1 0.75 0.79 0.83 0.87 0.91
1 0.8 0.84 0.88 0.92 0.96
1 -0.05 -0.01 0.03 0.07 0.11
B1=
2 0.9 0.94 0.98 1.02 1.06
2 0.85 0.89 0.93 0.97 1.01
2 0.5 0.54 0.58 0.62 0.66
2 0.75 0.79 0.83 0.87 0.91
C1=
3 0.36 0.4 0.44 0.48 0.52
3 0.4 0.44 0.48 0.52 0.56
你能澄清你的问题吗?也许举个例子吧? –
类似问题:http://stackoverflow.com/questions/6501922/sample-specific-rows-in-matlab – Amro