查看单个帖子
旧 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 当前离线   回复时引用此帖