find the last non-zero value

136 views (last 30 days)
Mahsa
Mahsa on 27 Mar 2015
Edited: Image Analyst on 27 Mar 2015
For a regular vector we can use following command to extract the vector after pre-allocating.
if m = [ 1 2 3 4 5 0 0 0 0 0 0 0 0]
m(m==0)=[]
m= [1 2 3 4 5];
However my question is what to do if zero is one of the real values like the following example:
m = [ 1 2 0 3 4 0 5 0 0 0 0 0 0 0 0];
I'm looking for a command that gives me
m = [ 1 2 0 3 4 0 5]
Thank you

Accepted Answer

Stephen23
Stephen23 on 27 Mar 2015
Edited: Stephen23 on 27 Mar 2015
Use find to locate non-zero values in an array. The optional arguments help you too:
>> m = [ 1 2 0 3 4 0 5 0 0 0 0 0 0 0 0];
>> m(1:find(m,1,'last'))
ans =
1 2 0 3 4 0 5

More Answers (0)

Categories

Find more on Mathematics 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!