看板 MATLAB 關於我們 聯絡資訊
請教各位高手 以下為小弟程式片段 ---------------------------------------------------- a=-1.2; b=0.8; c=0.4; d=0.7; m=[-1 1]; m2=[-1 1]; m3=[-1 1]; m4=[-1 1]; e0=(a-m).^2; f0=(b-m2).^2; f=f0(1,1); f1=f0(2,1); h0=(c-m3).^2; h=h0(1,1); % h=1.96 h1=h0(2,1); j0=(d-m4).^2; j=j0(1,1); j1=j0(2,1); aa=0; e=e0(1,1); e1=e0(2,1); g=min((e+f),(e1+f1)); g1=min((e+f1),(e1+f)); i=min((g+h),(g1+h1)); i1=min((g+h1),(g1+h)); % i1=2.04 k=min((i+j),(i1+j1)); [n,index]=min(aa+e0); nn=m(index); o=min(n+f0); %o=0.08 why=i1-h==o; %判斷式 ----------------------------------------------------------- 小弟不懂,我的判斷式i1-h確實等於o 但判斷出來卻是0(數值為1為true,0為false) 為何不是1? 感謝QQ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.221.130
ejialan:浮點數誤差 用i1-h-o就會發現不完全為0 判斷相等用 10/14 10:52
ejialan:why=abs(i1-h-o)<=eps;比較保險 eps也可以換成足夠小的值 10/14 10:54