How can I extract not zero numbers from a matrix?
2 views (last 30 days)
Show older comments
I have a matrix, like
M=[0 1 2 5 2 3 0 0 0 0 4 3 2 5 0 0 0 4 3 2 ...];
I'd like to extract n separated matrices, like:
A=[ 1 2 5 2 3];
B=[ 4 3 2 5];
C=[ 4 3 2];
or a matrix n Columns or rows, like
M=[A;B;C]
1 Comment
Image Analyst
on 24 Jun 2014
You cannot have an M like that because A, B, and C have different numbers of columns.
Accepted Answer
Azzi Abdelmalek
on 24 Jun 2014
M=[0 1 2 5 2 3 0 0 0 0 4 3 2 5 0 0 0 4 3 2 ];
idx=[0 M~=0 0];
ii1=strfind(idx,[0 1]);
ii2=strfind(idx,[1 0])-1;
out=arrayfun(@(ii,jj) M(ii:jj),ii1,ii2,'un',0);
celldisp(out)
0 Comments
More Answers (0)
See Also
Categories
Find more on Multidimensional Arrays in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!