Separte Matrix depending on changing value in column
    3 views (last 30 days)
  
       Show older comments
    
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!
0 Comments
Accepted Answer
  Voss
      
      
 on 14 Oct 2021
        
      Edited: Voss
      
      
 on 14 Oct 2021
  
      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 Comments
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!