Using NaN in if and interp1 commands

1 visualización (últimos 30 días)
Volkan Yangin
Volkan Yangin el 25 de Mzo. de 2017
Comentada: Volkan Yangin el 25 de Mzo. de 2017
Hi everbody, I have 6 values and some values are NaN. If interp1 command finds the final value as NaN for giving ' c' value, MATLAB must give me error message.
a=[1 2 3 4 5 6];
b=[10 15 20 NaN NaN NaN];
c=[1.5 4 3.5 4.5 5.1 5.9];
for g=1:1:numel(a)
if interp1(a,b,c(g))==NaN;
disp('There is a mistake here')
end
end
But MATLAB does't run this command with NaN values.
*In interp1 at 178
Warning: NaN found in Y, interpolation at undefined values
will result in undefined values.*
How can i achieve this problem? How can i use NaN values in interp1 and if command? I get the problems when i use isnan.
Thanks...
  2 comentarios
per isakson
per isakson el 25 de Mzo. de 2017
c(g) is a scalar. Why not replace
if interp1(a,b,c(g))==NaN;
by
if isnan( interp1(a,b,c(g)) )
?
Volkan Yangin
Volkan Yangin el 25 de Mzo. de 2017
Thank you per isakson. I am using the command you sent which includes isnan.

Iniciar sesión para comentar.

Respuesta aceptada

Jan
Jan el 25 de Mzo. de 2017
Editada: Jan el 25 de Mzo. de 2017
It is tzhe definition of NaN, that any comparison with it is false, even NaN == NaN. Therefore
if interp1(a,b,c(g))==NaN;
will most likely not do, what you expect. I assume you want:
for g = 1:numel(c) % Not numel(a) !??
cg = interp1(a, b, c(g));
if isnan(cg)
disp('There is a mistake here')
end
end
Or without a loop:
cg = interp1(a, b, c);
if any(isnan(cg))
disp('There is a mistake here')
end
I do not get a warning in R2016b.
  1 comentario
Volkan Yangin
Volkan Yangin el 25 de Mzo. de 2017
Editada: Volkan Yangin el 25 de Mzo. de 2017
Yes, it works on my MATLAB, too, but
Warning: NaN found in Y, interpolation at undefined values will result in undefined values. > In interp1 at 178
warning message is still on my command window.

Iniciar sesión para comentar.

Más respuestas (0)

Community Treasure Hunt

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

Start Hunting!

Translated by