Как разбить матрицу на основе записей столбцов в Matlab? - PullRequest
0 голосов
/ 05 октября 2018

У меня есть набор данных / матрица 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. Я хочу разделить matrix A на 3 разных джонка в зависимости от записей в последнем столбце 2, 0 и снова 2.

Не могли бы вы предложить какой-нибудь эффективный способ сделать это?

Я был бы очень признателен заВаш самый ранний ответ.

1 Ответ

0 голосов
/ 05 октября 2018

Я предполагаю, что желаемый результат представляет собой массив ячеек (под) матриц:

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
...