从A中提取包含一些子列的子矩阵

时间:2015-01-14 17:57:05

标签: matlab matrix matrix-indexing

      20     4     4    74    20    20   74   85  85  85   2    1
 A =  36     1     1    11    36    36   11   66  66  66   4    1
      77     1     1    15    77    77   15   11  11  11   1    4
       3     4     2     6     7     8   10   10  15  17   1    5

      20   4   85
 B =  36   1   66
      77   1   11

如何从矩阵A,我可以提取其颜色包含向量B(:,i)的子矩阵:​​[20 36 77][4 1 1][85 66 11]

期望的结果:

      20     4     4    20    20   85  85  85
      36     1     1    36    36   66  66  66
      77     1     1    77    77   11  11  11
       3     4     2     7     8   10  15  17

1 个答案:

答案 0 :(得分:3)

现在你已经解释了你想要的东西,转换矩阵,只选择A的三个顶行,然后使用ismember的第三个参数来指定你想要比较整行:

A(:,ismember(A(1:3,:).', B.', 'rows').')

    20     4     4    20    20    85    85    85
    36     1     1    36    36    66    66    66
    77     1     1    77    77    11    11    11
     3     4     2     7     8    10    15    17