How can I extract not zero numbers from a matrix?

1 view (last 30 days)
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
Image Analyst on 24 Jun 2014
You cannot have an M like that because A, B, and C have different numbers of columns.

Sign in to comment.

Accepted Answer

Azzi Abdelmalek
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)

More Answers (0)

Categories

Find more on Multidimensional Arrays in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!