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

조회 수: 5 (최근 30일)
Cary
Cary 2015년 6월 27일
댓글: Matt J 2015년 6월 27일
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