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.

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Asked:

on 16 May 2011

Community Treasure Hunt

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

Start Hunting!