24小时热门版块排行榜    

CyRhmU.jpeg
南方科技大学公共卫生及应急管理学院2025级博士研究生招生报考通知
查看: 346  |  回复: 5
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

quartzbj

金虫 (正式写手)

[交流] 【求助】if语句

目的希望beta1如果在(0,1)区间内,就取beta1。 如果不在就去判断Zfw的值,如果为1,就取0. 如果为0,结果就取1.


现在beta1=1,Zfw=1的情况下,竟然得到cc=1; 为什么不等于0????
if((0.                     cc=beta1;
                elseif(ZfW==1)
                    cc=0.0;
                else
                    cc=1.0;
                end
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

prairie

木虫 (正式写手)

tolerance设为10^(-n).自己定个值。
O(∩_∩)O~
6楼2009-10-27 17:48:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

nono2009

超级版主 (文学泰斗)

No gains, no pains.

优秀区长优秀区长优秀区长优秀区长优秀版主

这是偶运行的结果


小木虫(金币+0.5):给个红包,谢谢回帖交流
>> beta1 = 1;
ZfW = 1;
if((0. cc=beta1;
elseif(ZfW==1)
cc=0.0;
else
cc=1.0;
end
cc

cc =

     0
2楼2009-10-27 17:06:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

quartzbj

金虫 (正式写手)

发现一个比较奇怪的现象,因为beta1是前面的程序算出来的,结果在workspace中显示是1.0000,这时候执行上面的语句,就出现结果为1.0000.

但是如果赋值beta1=1.0000,不管后面加多少0,workspace中都是显示beta1=1.

这时候结果就是对的。
?????不理解。。。

[ Last edited by quartzbj on 2009-10-27 at 17:33 ]
3楼2009-10-27 17:28:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

quartzbj

金虫 (正式写手)

并且有如下现象:如果用程序算出的beta1=1.0000来计算beta1-1

ans =

-3.5784e-008 多次计算结果不一样!!!!!

如果直接赋值beta1=1.0000,beta1-1=0 这是什么惹的祸?
4楼2009-10-27 17:36:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见