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

9 visualizaciones (últimos 30 días)
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.

Respuesta aceptada

Matt J
Matt J el 27 de Jun. de 2015
Editada: Matt J el 27 de Jun. de 2015
find(~isnan(x),1,'last')
  1 comentario
Matt J
Matt J el 27 de Jun. de 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;

Iniciar sesión para comentar.

Más respuestas (1)

Azzi Abdelmalek
Azzi Abdelmalek el 27 de Jun. de 2015
find(~isnan(fliplr(x)),1)

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by