What's the problem about this loop?

Hello everyone,
I created graph G It has 4 nodes (1,2,3,4), and 3 edges.
I created values G.Nodes.Zp, and I have created values G.Nodes.Z
G.Nodes.Zp values are [0,0,1,1]
I have control array which is
kontrola=[1;2;NaN;NaN]
I created a loop as follows
for i=1:1:length(kontrola)
if kontrola(i)==NaN
G.Nodes.Z(i)=G.Nodes.Zp(i);
end
end
But it doesn't work, no error, no anything.
By my logic G.Nodes.Z(3)&G.Nodes.Z(4) should get values from G.Nodes.Zp(3)&G.Nodes.Zp(4).
Thank you for your time,
Denis

 Respuesta aceptada

per isakson
per isakson el 18 de Jun. de 2016
Editada: per isakson el 18 de Jun. de 2016
Test
>> nan==nan
ans =
0
Replace
kontrola(i)==NaN
by
isnan(kontrola(i))
and run your code.
...
Because two NaNs are not equal to each other, logical operations involving
NaNs always return false, except ~= (not equal). Consequently,
NaN ~= NaN
ans =
1
NaN == NaN
ans =
0

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 17 de Jun. de 2016

Editada:

el 18 de Jun. de 2016

Community Treasure Hunt

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

Start Hunting!

Translated by