【发布时间】:2013-04-03 23:53:02
【问题描述】:
我在 Matlab 中有一个与此类似的矩阵,除了有数千行:
A =
5 6 7 8
6 1 2 3
5 1 4 8
5 2 3 7
5 8 7 2
6 1 3 8
5 2 1 6
6 3 2 1
我想得到一个矩阵,该矩阵具有三个随机行,第一列为“5”,三个随机行,第一列为“6”。所以在这种情况下,输出矩阵看起来像这样:
A =
5 6 7 8
6 1 2 3
5 2 3 7
6 1 3 8
5 2 1 6
6 3 2 1
行必须是随机的,而不仅仅是原始矩阵中的前三个或后三个。 我不太确定如何开始,所以任何帮助将不胜感激。
编辑:这是我迄今为止最成功的尝试。我在第一列中找到了所有带有“5”的行:
BLocation = find(A(:,1) == 5);
B = A(BLocation,:);
然后我尝试像这样使用“randsample”从 B 中找到三个随机行:
C = randsample(B,3);
但 'randsample' 不适用于矩阵。
我也认为这可以更有效地完成。
【问题讨论】:
标签: matlab matrix random-sample