Simple Method for Finding if ANY NaN values occur in a matrix.
Mostrar comentarios más antiguos
Is there a quick method of finding out whether or not a matrix or a vector in matlab has any NaN values? A large matrix filled with mostly 0's (after applying isnan(MATRIX)) does not really cut it.
Don't get me wrong, I would information of finding out where such NaN's occur and how to count how many NaN values appear in a given matrix, but I really would like to know if there is a simple way to identify if any NaN's at all appear in a given matrix with a simple 1 or 0 response, as it would save me time having to inspect the matrix or write a program to do it.
Would there be simple ways of counting how many NaN's occur, and identify their location in a given matrix? I assume such techniques would be applicable to finding infinities as well, am I correct?
Respuesta aceptada
Más respuestas (3)
Stefan Siemens
el 12 de Nov. de 2018
Personally I think
any(isnan(your_matrix(:)));
is the easiest way.
Jan
el 21 de Mzo. de 2018
Here is a fast C-Mex function to find out, if any element of one array occurs in the other: FEX: anyEq .
hasAnyNaN = anyEq(X, NaN);
This does not create a temporary array like isnan(X) and stops the search at the first match already. So this is treated as efficient as possible:
X = NaN(1, 1e6);
T = anyEq(X, NaN); % Performs 1 comparison only
1 comentario
BM
el 21 de Mzo. de 2018
Charles Rice
el 7 de Mayo de 2024
2 votos
If you're finding this answer post 2022, there's a new function anynan(A).
Categorías
Más información sobre Logical en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!