如何在Matlab中每次选择矩阵中的不同行?

时间:2015-06-08 07:06:11

标签: 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

现在,我想在迭代过程中从B创建一个大小为2 X 3的新矩阵A,使得矩阵B应包含不同的行每次迭代(最大迭代次数= 5)

我的伪代码:

for j=1:5
  create matrix 'B' by selecting 2 rows randomly from 'A', which should be different
end

1 个答案:

答案 0 :(得分:3)

你可以使用randperm随机搞乱行,然后依次按顺序在每次迭代中取两行。

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

<强>结果:

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