auto split matrix into other matrices (up to n)

Matrix A
A = [1 55 14 1 1 1
2 55 14 1 1 1
5 35 13 1 1 2
6 35 12 1 1 2
7 35 11 2 2 3
8 35 11 2 2 3;
auto split into other matrices B,C,D (potentially all the way to N) based on the last column
B = [1 55 14 1 1 1
2 55 14 1 1 1];
C = [5 35 13 1 1 2
6 35 12 1 1 2];
D = [7 35 11 2 2 3
8 35 11 2 2 3];

 Accepted Answer

A = [1 55 14 1 1 1
2 55 14 1 1 1
5 35 13 1 1 2
6 35 12 1 1 2
7 35 11 2 2 3
8 35 11 2 2 3];
C = A(:,end) ;
[c,ia,ib] = unique(A(:,end)) ;
N = length(c) ;
iwant = cell(N,1) ;
for i = 1:N
iwant{i} = A(ib==i,:) ;
end

3 Comments

it doesn't provide me this result.
B = [1 55 14 1 1 1
2 55 14 1 1 1];
C = [5 35 13 1 1 2
6 35 12 1 1 2];
D = [7 35 11 2 2 3
8 35 11 2 2 3];
You have what you want....iwant{1}, iwant{2}, iwant{3}
thats true! thanks :)

Sign in to comment.

More Answers (0)

Categories

Asked:

JL
on 28 May 2020

Commented:

JL
on 28 May 2020

Community Treasure Hunt

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

Start Hunting!