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

5 visualizaciones (últimos 30 días)
Nicolas CRETIN
Nicolas CRETIN el 2 de Mayo de 2024
Comentada: Nicolas CRETIN el 6 de Mayo de 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 comentario
Nicolas CRETIN
Nicolas CRETIN el 2 de Mayo de 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

Iniciar sesión para comentar.

Respuesta aceptada

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

Más respuestas (1)

Steven Lord
Steven Lord el 2 de Mayo de 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

Etiquetas

Productos


Versión

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by