dividing a column matrix based on the no
이전 댓글 표시
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
채택된 답변
추가 답변 (1개)
Andrei Bobrov
2011년 5월 16일
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
bilhan
2011년 5월 16일
bilhan
2011년 5월 16일
Oleg Komarov
2011년 5월 16일
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
2011년 5월 17일
카테고리
도움말 센터 및 File Exchange에서 Data Type Identification에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!