我正在尝试比较if语句中的三个数字,但即使它们是相同的,它们也不匹配。
这是命令窗口中的数字,
>> a = (round2(final_aucscore(10, 1),1e-4))
a =
0.9369
>> b = (round2(final_aucscore(10, 2),1e-4))
b =
0.9598
>> c = (round2(final_aucscore(10, 3),1e-4))
c =
0.9509
函数round2
可以在文件echange here中找到。
这是我的代码:
for mmm = 1:265
a = (round2(final_aucscore(mmm, 1),1e-4));
b = (round2(final_aucscore(mmm, 2),1e-4));
c = (round2(final_aucscore(mmm, 3),1e-4));
if a == 0.9369 && b == 0.9598 && c == 0.9509
auc_idx = idx(1:kk);
save('auc_idx', 'auc_idx', 'mmm');
break;
end
end
不应该在mmm = 10
时停止并保存吗?
答案 0 :(得分:2)
答案 1 :(得分:2)
您遇到的问题来自舍入错误。 试试这个
foo = 0.9369;
bar = (round2(foo,1e-4));
disp(bar == foo)
disp(foo-bar)
您可以改为仅在一定精度内进行比较。