作者oo250520 (阿岚)
看板MATLAB
标题[问题] 判别式的用法
时间Sun Oct 13 19:45:02 2013
请教各位高手
以下为小弟程式片段
----------------------------------------------------
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
1F:→ ejialan:浮点数误差 用i1-h-o就会发现不完全为0 判断相等用 10/14 10:52
2F:→ ejialan:why=abs(i1-h-o)<=eps;比较保险 eps也可以换成足够小的值 10/14 10:54