how to find location of nans in a matrix

55 visualizaciones (últimos 30 días)
ahmad
ahmad el 28 de Feb. de 2023
Comentada: Stephen23 el 28 de Feb. de 2023
I have a very large matrix. I need to find locations of nans (not a number) in the matrix. for example if there exists a nan in row=2 and coloumn=5, It must give me the answer (2,5)
what do I have to do?

Respuesta aceptada

Walter Roberson
Walter Roberson el 28 de Feb. de 2023
[r, c] = find(isnan(YourMatrix)) ;

Más respuestas (1)

Luca Ferro
Luca Ferro el 28 de Feb. de 2023
supposing you matrix is named 'm':
nan=isnan(m); %returns 1 where NaN
[rIdx,cIdx]=find(nan==1); %returns row and col indeces whre the 1 is
nanIdx=[rIdx(:),cIdx(:)]; %creates rows column pairs, every row represents a pair
%to access the pairs do:
nanIdx(1,:) %first pair (row-col where NaN is)
nanIdx(2,:) %second pair, and so on
  1 comentario
Stephen23
Stephen23 el 28 de Feb. de 2023
It would be best not using variable name NAN and shadowing the inbuilt function of that name:
nan(1,2)
ans = 1×2
NaN NaN
Note that nan==1 converts a logical array to an exactly identical logical array, so that EQ is superfluous.

Iniciar sesión para comentar.

Categorías

Más información sobre Matrices and Arrays en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by