Spitting matrix A into other matrices using the last two columns values

I have a matrix A
A = [1 1 1;
2 1 1;
3 1 1;
4 2 1;
5 2 2;
6 2 2];
And would like to split them into different matrices (up to n) depending on the last two columns being the same
A1 = [1 1 1;
2 1 1];
The 3rd row of matrix A has the same last two columns but because there’s a limit up to 2 row each matrix, it will be on another matrix A2
A2 = [3 1 1];
The rest will be A3 and A4 below
A3 = [4 2 1];
A4 = [5 2 2
6 2 2];

Answers (1)

A = [1 1 1;
2 1 1;
3 1 1;
4 2 1;
5 2 2;
6 2 2];
rowDist = [2 1 1 2] ;
iwant = mat2cell(A,rowDist) ;
Access iwant by iwant{1},iwant{2}...etc...

6 Comments

Doesn't give me the right answer. it doesnt give me A1,A2, A3, and A4, This has one only two matrices.
Ohh..yes..your requirement is different....here..
read about mat2cell. Edited the answer.
Note that I have edited the naswer...
for this, rowDist = [2 1 1 2] ; Can this be done automatic? cuz this is manually done. The reason what i'm asking is that I may have 1000 rows
On what criteria you have come to conclusion of [2 1 1 2]? Is there any criteria?
I have mentioned it in my question above. (1) last two columns of each rows, need to be put in the same matrix, (2) if theres three rows having the same last two columns, the 3rd one will have to move on to another matrix

Sign in to comment.

Categories

Asked:

JL
on 3 Jun 2020

Commented:

JL
on 3 Jun 2020

Community Treasure Hunt

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

Start Hunting!