Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2008-01-12, 01:23   #1
Jozgoo
初级会员
 
注册日期: 2008-01-11
年龄: 44
帖子: 6
声望力: 0
Jozgoo 正向着好的方向发展
警告 【求助】遇到一个十分奇怪的毛病关于 elseif

为了实现在t 在 [400,414] [900,910] 区间
常数Q 为0
t在其余情况 Q都为5.3*10^(-6)

Q设初始值也设为 5.3*10^(-6);
t=0:0.1:2000

写了下面一段程序

引用:
if((t >= 400) && (t <= 414))
Q = 0;
elseif ((t >=900) && (t <= 910))
Q = 0;
else
Q = 5.3*10^(-6);
end;

结果中间elseif语句完全没有效果, 在t= [900,910] 区间中 Q仍然=5.3*10^(-6)
而 在t = [400, 414]区间中 Q是=0的

但是我改到 t= [700, 710] 区间中, Q在这时候却可以变成 0了
这时候 t 在 两个区间[400, 414] [700, 710] 中 Q值都变成了0
引用:
if ((t >= 400) && (t <= 414))
Q = 0;
elseif ((t >=700) && (t <= 710))
Q = 0;
else
Q = 5.3*10^(-6);
end;


我还试过下面这些 始终都是同样问题,900-910 就不行,700-710就可以

引用:
if((t >= 400) & (t <= 414))
Q = 0;
elseif ((t >=900) & (t <= 910))
Q = 0;
else
Q = 5.3*10^(-6);
end;

引用:
if (t >= 400) & (t <= 414)
Q = 0;
elseif (t >=900) & (t <= 910)
Q = 0;
else
Q = 5.3*10^(-6);
end;
引用:
if t >= 400 & t <= 414
Q = 0;
elseif t >=900 & t <= 910
Q = 0;
else
Q = 5.3*10^(-6);
end;
Jozgoo 当前离线   回复时引用此帖
 

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 13:20


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.