Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
高级会员
注册日期: 2008-01-02
帖子: 247
声望力: 22 ![]() |
![]()
关键是第二次为什么进入else?
这个没有人说明白了。 |
![]() |
![]() |
![]() |
#2 |
高级会员
注册日期: 2008-01-02
帖子: 247
声望力: 22 ![]() |
![]()
进入else的唯一原因就是matlab计算误差问题。
|
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2008-07-11
年龄: 40
帖子: 7
声望力: 0 ![]() |
![]()
自问没有明白为什么第二次判断时条件式为什么为假了?
|
![]() |
![]() |
![]() |
#4 |
初级会员
注册日期: 2008-05-02
年龄: 38
帖子: 3
声望力: 0 ![]() |
![]()
在对任何双精度进行相等比较时,因该注意这样写 :abs(y1-y2)<eps;应为双精度存储不是准确的,只是近似值。该程序中,可以加入一句:s1=deadrate-0.9500,在fomat long 情况下可以看到第二次循环计算为1.1102e-016 :lol:
|
![]() |
![]() |
![]() |
#5 |
初级会员
注册日期: 2008-01-13
年龄: 43
帖子: 2
声望力: 0 ![]() |
![]()
clc;clear all;
deadrate=0.9; for i=1:2 i deadrate t1=abs(deadrate-0.95)<=eps t2=abs(deadrate-0.9)<=eps if t1 || t2 disp('||') deadrate = deadrate+0.0500 else disp('else') deadrate = deadrate+0.1 end end |
![]() |
![]() |
![]() |
#6 |
初级会员
注册日期: 2008-05-29
年龄: 39
帖子: 7
声望力: 0 ![]() |
![]()
学习了。谢谢了。
|
![]() |
![]() |
![]() |
|
|
![]() |
||||
主题 | 主题作者 | 版面 | 回复 | 最后发表 |
[求助]关于matlab与c#编程的问题!高手指点! | neu_cnlj | MATLAB论坛 | 2 | 2010-05-10 09:46 |
帮忙看一下这三两行程序 | smart55427 | MATLAB论坛 | 1 | 2008-12-18 23:23 |
[求助]bp神经网络(急) | sosnyf621 | MATLAB论坛 | 0 | 2008-12-03 16:21 |
GM(1,1) | lvlianggan | MATLAB论坛 | 2 | 2008-11-07 22:52 |
【求助】这个微分方程怎么写成函数文件呢? | grasszhang | MATLAB论坛 | 0 | 2007-08-30 15:25 |