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 commentaire

Oleg Komarov
Oleg Komarov le 16 Mai 2011
See my double edited answer in the previous post.

Connectez-vous pour commenter.

Réponses (1)

Andrei Bobrov
Andrei Bobrov le 16 Mai 2011

0 votes

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 commentaires

Oleg Komarov
Oleg Komarov le 16 Mai 2011
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
Andrei Bobrov
Andrei Bobrov le 16 Mai 2011
Hi Oleg, i'm to blame, did not notice.
Oleg Komarov
Oleg Komarov le 16 Mai 2011
You can add your answer to the other post. Multiple interpretations are always useful.
Andrei Bobrov
Andrei Bobrov le 16 Mai 2011
well

Connectez-vous pour commenter.

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Question posée :

le 16 Mai 2011

Community Treasure Hunt

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

Start Hunting!

Translated by