Separte Matrix depending on changing value in column

Hi!
I got the following problem. I got a (N,2) Matrix. Now I want to cut the Matrix in severval (n,2) matrices with N>=n, depending on a changing value in the second column. For example [a,1; b,2; c,2; d,1] sould be separated into 3 matrices [a,1] [b,2 c,2] [d,1].
Thanks!

 채택된 답변

Voss
Voss 2021년 10월 14일
편집: Voss 2021년 10월 14일
Let X be your N-by-2 matrix. Then the following code will separate X into a cell array Y, each element of which is a slice of X according to the second column value:
idx = 1+[0; find(diff(X(:,2))); size(X,1)];
n = numel(idx)-1;
Y = cell(n,1);
for i = 1:n
Y{i} = X(idx(i):idx(i+1)-1,:);
end

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Annotations에 대해 자세히 알아보기

제품

릴리스

R2019b

태그

질문:

Dom
2021년 10월 14일

편집:

2021년 10월 14일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by