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

 Accepted Answer

per isakson
per isakson on 18 Jun 2016
Edited: per isakson on 18 Jun 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

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!