如何根据Matlab中的列条目拆分矩阵?

时间:2018-10-05 10:01:23

标签: matlab matrix split

我有一个数据集/矩阵 A,具有以下功能:

A = [ 
      2 3 6 2 2;
      5 3 5 6 2;
      4 5 6 5 2;
      6 4 3 2 0;
      2 3 6 2 0;
      5 3 5 6 0;
      4 5 6 5 2;
      6 4 3 2 2;
      2 3 6 2 2;
      5 3 5 6 2
];

在最后一列中,我具有2和0条目。我想根据最后一列中的条目2、0和2,将matrix A分成3种不同的垃圾。

请问您能提出一些有效的方法吗?

请您尽快答复我。

1 个答案:

答案 0 :(得分:2)

我假设期望的结果是一个(子)矩阵的单元格数组:

B = mat2cell(A, diff([0; find([diff(A(:,end)); 1])]), size(A,2));

对于您的示例A,这给出了

>> celldisp(B)
B{1} =
     2     3     6     2     2
     5     3     5     6     2
     4     5     6     5     2
B{2} =
     6     4     3     2     0
     2     3     6     2     0
     5     3     5     6     0
B{3} =
     4     5     6     5     2
     6     4     3     2     2
     2     3     6     2     2
     5     3     5     6     2