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

5 次查看(过去 30 天)
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.

采纳的回答

Matt J
Matt J 2015-6-27
编辑:Matt J 2015-6-27
find(~isnan(x),1,'last')
  1 个评论
Matt J
Matt J 2015-6-27
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;

请先登录,再进行评论。

更多回答(1 个)

Azzi Abdelmalek
Azzi Abdelmalek 2015-6-27
find(~isnan(fliplr(x)),1)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by