division of a single column matrix

i have a single column matrix A=0 0 0 1 1 1 1 0 0 0 0 2 2 2 2 0 0 0 0 1 1 1 now i have to divide this in to several matrices such whenever 0 changes to 1 or 2 i want a new matrix in this case A1= 1 1 1 1 0 0 0 0; A2=2 2 2 2 0 0 0 0 ;A3= 1 1 1 which are also single column matrices ............using for loop

1 Comment

See my double edited answer in the previous post.

Sign in to comment.

Answers (1)

in this case
A = A(:);
I = cumsum([0;diff(A)]~=0 & (A == 1 | A == 2));
out = arrayfun(@(x)A(I==x),1:max(I),'un',0);
Dear bilhan! I think it is necessary to remove the question. See commentary by Oleg Komarov

4 Comments

This a duplicate post and the op asked a loop solution: http://www.mathworks.com/matlabcentral/answers/7497-dividing-a-column-matrix-based-on-the-no
Hi Oleg, i'm to blame, did not notice.
You can add your answer to the other post. Multiple interpretations are always useful.

Sign in to comment.

Asked:

on 16 May 2011

Community Treasure Hunt

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

Start Hunting!