why is NaN not of 'NaN type' in Simulink?

5 vues (au cours des 30 derniers jours)
Nicolas CRETIN
Nicolas CRETIN le 2 Mai 2024
Hi everyone,
Please, could anyone explain why the constant block NaN is not of type NaN?
Thank you in advance!
Best regards,
Nicolas
  1 commentaire
Nicolas CRETIN
Nicolas CRETIN le 2 Mai 2024
To solve the problem I first converted my input into a string and then I applied a string comparison:
But this is still a weird behaviour

Connectez-vous pour commenter.

Réponse acceptée

Paul
Paul le 2 Mai 2024
It looks like the block labeled "assertion1" is a Compare To Constant block.
Instead use a Relational Operator block, which supports isNaN functionality.

Plus de réponses (1)

Steven Lord
Steven Lord le 2 Mai 2024
By the definition of NaN, NaN is not equal to anything (including itself.) This is documented on the documentation pages for the NaN function as well as the documentation page for the == operator.
If you can call MATLAB functions in your model, use isequaln to perform equality testing including treating NaN as equal to NaN.
x = NaN;
x == x % false
ans = logical
0
isequal(x, x) % false
ans = logical
0
isequaln(x, x) % true
ans = logical
1

Produits


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by