[問題] 判別式的用法

看板MATLAB作者 (阿嵐)時間12年前 (2013/10/13 19:45), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串1/1
請教各位高手 以下為小弟程式片段 ---------------------------------------------------- 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

10/14 10:52, , 1F
浮點數誤差 用i1-h-o就會發現不完全為0 判斷相等用
10/14 10:52, 1F

10/14 10:54, , 2F
why=abs(i1-h-o)<=eps;比較保險 eps也可以換成足夠小的值
10/14 10:54, 2F
文章代碼(AID): #1IMeV17c (MATLAB)