为什么在MATLAB中我想执行一个多项选择的语句:用if;elseif 之后 只执行到第一个额雷锋呢?

程序如下:
t=[];
H=[];
for a=0:50:7000;
if a<=200
s=0;
elseif 200<a<=700
s=6*a;
elseif 700<a<=1200
s=5000;
elseif 1200<a<=1500
s=16.7*a;
elseif 1500<a<=5100
s=10000;
elseif 5100<a<=6900
s=10000-5.6*a;
else
s=0;
end
t=[t a];
H=[H s];
end
[t;H]'

clear;clc
t=[];H=[];
for a=0:50:7000
    if a<=200
        s=0;
    elseif    a<=700&a>200                 %  要这样写
        s=6*a;
    elseif    a<=1200&a>700              %  要这样写
        s=5000;
    elseif    a<=1500&a>1200            %  要这样写
        s=16.7*a;
    elseif    a<=5100&a>1500           %  要这样写
        s=10000;
    elseif    a<=6900&a>5100           %  要这样写
        s=10000-5.6*a;
    else
        s=0;
    end
    t=[t;a];
    H=[H;s];
end
[t H]
plot(t,H)

 

 

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-05
干脆别用循环了:
clear all;clc;
t=[];
H=[];
a=0:50:7000;
s=0*(a<=200)+6*a.*(a>200&a<=700)+5000*(a>700&a<=1200)+...
16.7*a.*(a>1200&a<=1500)+10000*(a>1500&a<=5100)+...
(10000-5.6*a).*(a>5100&a<=6900)+0*(a>6900);
t=[t a];
H=[H s];
plot(t,H);

为什么在MATLAB中我想执行一个多项选择的语句:用if;elseif 之后...
clear;clct=[];H=[];for a=0:50:7000 if a<=200 s=0; elseif a<=700&a>200 % 要这样写 s=6*a; elseif a<=1200&a>700 % 要这样写 s=5000; elseif a<=1500&a>1200 % 要这样写 s=16.7*a; elseif a<=5100&a>150...

matlab里的elseif语句
在MATLAB中,elseif语句是一种关键的条件控制结构,它扩展了if...else...end的灵活性。基本的if...end结构用于判断一个条件,例如,如果5大于3,会将1赋值给变量a:if 5 > 3 a = 1;else a = 2; % 这里没有使用elseif,因为条件不满足 end 而if...elseif...else...end结构则允许你在...

在matlab中if语句
答案:在MATLAB中使用if语句进行条件判断是非常基础的编程操作。其基本语法结构为:matlab if 条件 如果条件为真,执行这里的代码 elseif 另一个条件 如果第一个条件为假,但第二个条件为真,执行这里的代码 else 如果所有条件都不为真,执行这里的代码 end 详细解释:1. 基本语法结构:在MATLAB中,`...

Matlab 中有关条件控制语句 if 和 switch 的问题
究其原因,就是,if-elseif-else-end最后一个else是不用判断条件的,前面的条件都不满足就会执行else后的语句。再加上,用来计算的矩阵是由rand随机生成的,这样,就可以很好的解释为什么有时多,有时少,数量不确定的现象了。所以修改的办法是:1,把h(i,j)==d1(i,j)删除;2,把else改成elsei...

matlab中function中if语句怎么用
在matlab中,if 语句可以跟随一个(或多个)可选的 elseif... else 语句,这是非常有用的,用来测试各种条件。使用 if... elseif...else 语句,有几点要记住:一个 if 可以有零个或else,它必须跟在 elseif 后面(即有 elseif 才会有 else)。一个 if 可以有零个或多个 elseif ,必须...

matlab程序if语句用法
这种情况下,如果条件不满足,则不执行任何操作。3. 多分支if-elseif语句:对于多个条件的判断,可以使用if-elseif-else结构。当第一个条件不满足时,会检查第二个条件,以此类推。例如:matlab if 条件1 执行代码1 elseif 条件2 执行代码2 else 执行默认代码 end 这种结构允许根据多个条件执行不同...

matlab程序if语句用法
MATLAB中,条件判断语句是编程中的重要组成部分,它通过if、else、elseif等结构实现逻辑控制。让我们深入理解这些结构的用法。首先,基本的if...end结构用于简单的条件判断,如检查5是否大于3。如果条件成立,会执行相应的赋值语句。例如,当a1小于a2时,会将a2的值赋给a1。更复杂的if...else...end...

matlabifelse语句怎么用?
在MATLAB中,if-else语句是一种条件控制结构,用于根据特定条件执行不同的代码块。其基本语法结构如下:1. 基础语法:使用`if`来检查一个条件是否为真。如果条件为真,执行`if`后面的代码块。使用`else`来包含条件为假时要执行的代码块。可选地,可以使用`elseif`来添加额外的条件检查。最后,可以...

关于matlab中if else end的赋值的问题
不能这么写,“8<=i<=10”会先进行8<=i运算,结果为0,再进行0<=10运算,结果就为1了,“8<=j<=10”同理,因此,当i和j都为1时,整个if条件是成立的,所以就执行了后面的语句,正确的写法要把四个条件分开写“if 8<=i && i<=10 && 8<=j && j<=10”...

MATLAB—If…else…end条件转移结构
在MATLAB中,条件转移结构If…else…end用于根据特定条件执行不同的代码段。这种结构的基本语法是先检查一个或多个条件,根据条件的真假执行相应的语句。如果条件式1成立,执行语句段1;否则,如果条件式2成立,执行语句段2,以此类推。如果所有条件都不满足,就会执行else后面的语句段n+1。这种结构可以...

相似回答