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

 采纳的回答

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

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by