如何在Matlab中每次选择矩阵中的不同行?
我想创建一个矩阵,它有从另一个矩阵中选择的不同行 例如,我有一个如何在Matlab中每次选择矩阵中的不同行?,matlab,matrix,Matlab,Matrix,我想创建一个矩阵,它有从另一个矩阵中选择的不同行 例如,我有一个10x3矩阵a A = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 现在,我想在迭代过程中从a创建一个大小为2 X 3的新矩阵B,这样矩阵B在每次迭代中应该包含不同的行(最大迭
10x3
矩阵a
A =
1 2 3
4 5 6
7 8 9
10 11 12
13 14 15
16 17 18
19 20 21
22 23 24
25 26 27
28 29 30
现在,我想在迭代过程中从a
创建一个大小为2 X 3
的新矩阵B
,这样矩阵B
在每次迭代中应该包含不同的行(最大迭代=5)
我的伪代码:
for j=1:5
create matrix 'B' by selecting 2 rows randomly from 'A', which should be different
end
B =
22 23 24
25 26 27
B =
1 2 3
13 14 15
B =
19 20 21
16 17 18
B =
7 8 9
10 11 12
您可以使用随机地将行弄乱,然后在每个迭代中依次取两行
iterations = 4;
permu = randperm(size(A,1));
out = A(permu(1:iterations*2),:);
for ii = 1:iterations
B = out(2*ii - 1:2*ii,:)
end
结果:
for j=1:5
create matrix 'B' by selecting 2 rows randomly from 'A', which should be different
end
B =
22 23 24
25 26 27
B =
1 2 3
13 14 15
B =
19 20 21
16 17 18
B =
7 8 9
10 11 12
谢谢你的回复…实际上我不想选择最大可能的组合,即总迭代次数也可能少于5次。但我想要两件事:(1)新创建的矩阵B不包含a的公共行,(2)在每次迭代中,B的行与a的前几行不匹配B@PrateekSinghal为可变的迭代次数进行编辑。只要更改
iterations
变量的值就可以了。