Borrar filtros
Borrar filtros

how to write an if statement for a matrix with some NaN elements?

2 visualizaciones (últimos 30 días)
Mnr
Mnr el 5 de Mayo de 2015
Editada: Stephen23 el 6 de Mayo de 2015
Hello all,
I have a matrix with some elements 0s or 1s and the rest are NaNs. I would like to write an if statement that ignores the NaN elements of the matrix. I have tried
if (a(:)==1 or a(:)==0)
------------
end
however, I am getting an error. I would appreciate if somebody can help me please. Thanks.
  7 comentarios
Stephen23
Stephen23 el 6 de Mayo de 2015
Editada: Stephen23 el 6 de Mayo de 2015
As Walter Roberson pointed out, it is very important to know that NaN is never equal to anything, not even itself:
>> NaN==NaN
ans =
0
The only way to test for NaN is using isnan, (or by implication isinf and isfinite):
Walter Roberson
Walter Roberson el 6 de Mayo de 2015
~(A==A) is also a test for A being NaN.

Iniciar sesión para comentar.

Respuestas (1)

Walter Roberson
Walter Roberson el 5 de Mayo de 2015
nonnanlocs = ~isnan(a);
a(nonnanlocs) = SomeFunction(a(nonnanlocs));

Categorías

Más información sobre Logical 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