Clear Filters
Clear Filters

find the last non-zero value

91 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)

Community Treasure Hunt

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

Start Hunting!