Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
两个不工作数字的Matlab比较_Matlab_If Statement_For Loop - Fatal编程技术网

两个不工作数字的Matlab比较

两个不工作数字的Matlab比较,matlab,if-statement,for-loop,Matlab,If Statement,For Loop,我试图比较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 函数ro

我试图比较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中找到

这是我的密码:

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时,它不应该停止并保存吗?

读它并哭泣。

读它并哭泣。

您现在面临的问题来自舍入错误。 试试这个


相反,您可以创建一个只在一定精度内进行比较的函数。

这里您面临的问题来自舍入误差。 试试这个


相反,您可以创建一个只在一定精度内进行比较的函数。

请参阅:FEX上的
round2
函数非常糟糕(甚至评级为4.8!)。它甚至没有矢量化。这样的事情不应该被允许。它可以被以下匿名函数替换:
round2=@(x,y)round(x./y)。*y或者您可以编辑代码。然而,它仍然会受到浮点运算的不精确性的影响。也称为
round2
,似乎在数字上更可靠(虽然只有4.3级…。请参阅:FEX上的
round2
功能非常糟糕(甚至有4.8级!)。它甚至没有矢量化。这样的事情不应该被允许。它可以被以下匿名函数替换:
round2=@(x,y)round(x./y)。*y或者您可以编辑代码。然而,它仍然会受到浮点运算的不精确性的影响。也称为
round2
,似乎在数字上更合理(虽然只有4.3级…)。
foo = 0.9369;
bar = (round2(foo,1e-4));
disp(bar == foo)
disp(foo-bar)