Effacer les filtres
Effacer les filtres

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

2 vues (au cours des 30 derniers jours)
Mnr
Mnr le 5 Mai 2015
Modifié(e) : Stephen23 le 6 Mai 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 commentaires
Stephen23
Stephen23 le 6 Mai 2015
Modifié(e) : Stephen23 le 6 Mai 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 le 6 Mai 2015
~(A==A) is also a test for A being NaN.

Connectez-vous pour commenter.

Réponses (1)

Walter Roberson
Walter Roberson le 5 Mai 2015
nonnanlocs = ~isnan(a);
a(nonnanlocs) = SomeFunction(a(nonnanlocs));

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by