Find the index of the last numeric element of a column including NaNs

5 views (last 30 days)
I have a column with many rows that has data in the middle surrounded by NaNs. For example, below is an abbreviated version of what I'm talking about. Let's call the column 'x':
NaN NaN NaN 235 6 24 NaN NaN
I am trying to find the index of 24 (the last numeric element in the column). So far I am able to do this:
find(~isnan(x))
The snippet above returns the index of all three numbers. I just want the last one (24). I have tried
find(~isnan(x(end)))
but this gives me an empty array (in the Workspace, the Value is []).
Can anyone shed some light on this. I appreciate everyone's help.
UPDATE: I have found the solution.
find(~isnan(x),1,'last')
Thanks for everyone's help.

Accepted Answer

Matt J
Matt J on 27 Jun 2015
Edited: Matt J on 27 Jun 2015
find(~isnan(x),1,'last')
  1 Comment
Matt J
Matt J on 27 Jun 2015
To do this column-wise when x is a matrix, a slightly different approach is needed,
[~,I]=max(flipud(~isnan(x)));
result=size(x,1)+1-I;

Sign in to comment.

More Answers (1)

Azzi Abdelmalek
Azzi Abdelmalek on 27 Jun 2015
find(~isnan(fliplr(x)),1)

Community Treasure Hunt

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

Start Hunting!