Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Matlab中每次选择矩阵中的不同行?_Matlab_Matrix - Fatal编程技术网

如何在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
变量的值就可以了。