dividing a column matrix based on the no
Mostrar comentarios más antiguos
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 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 which are also single column matrices
Respuesta aceptada
Más respuestas (1)
Andrei Bobrov
el 16 de Mayo de 2011
more variant
A = A(:);
I = cumsum([0;diff(A)]~=0 & (A ~= 0));
out = arrayfun(@(x)A(I==x),1:max(I),'un',0);
same with the loop
A = A(:).';
I = cumsum([0,diff(A)]~=0 & (A ~= 0));
out = cell(1,max(I));
for j = 1:max(I),
out{j} = A(j==I);
end
4 comentarios
bilhan
el 16 de Mayo de 2011
bilhan
el 16 de Mayo de 2011
Oleg Komarov
el 16 de Mayo de 2011
I edited my solution to take into account initial conditions (if A doesn't start with a 0) and to split a matrix on the basis of the first array.
bilhan
el 17 de Mayo de 2011
Categorías
Más información sobre Data Type Identification en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!