MATLAB中我们常常用到条件判断语句结构,通过实例介绍这个结构的用法: 1、if..end结构,运行下面的句子,此条件语句是判断5是否大于3,如果大于3,就将1赋值给; 2、if.elseend 结构,我们以如下内容进行判断: 运行以上语句,结果如
MATLAB中我们常常用到条件判断语句结构,下面就通过实例介绍一下这个结构的用法
方法
运行上面的句子,此条件语句是判断5是否大于3,如果大于3,就将1赋值给a
嵌套if语句的语法如下: if % Executes when the boolean expression 1 is true if % Executes when the boolean expression 2 is true end end 例如: 创建脚本文件并在其中键入以下代码 : a = 100; b = 200; % check the boolean condition i
a1=1,a2=1,判断a1是否大于a2,显然不大于,然后就执行else语句,给a赋值为2,
语法 if expression statements end MATLAB计算表达式,如果产生一个逻辑真或者非零结果,然后就执行一条或者多条MATLAB命令语句。 当有嵌套if时,每一个if必须和一个相应的end匹配。当你在if语句里面嵌套使用else if或者else时,一般的格式如下
a1=a2=1,判断a1>a2?不满足,执行elseif语句,a1
a&b或函数and(a,b)表示a和b做逻辑与运算,当a b全为非零时,运算结构为1,否则为0. if语句后的条件判断,两种方式均可以。
扩展阅读,以下内容您可能还感兴趣。
matlab if else语句怎么用?
if h(i,j)==a1(i,j)
e(i,j)=a(i,j);
elseif h(i,j)==b1(i,j)
e(i,j)=b(i,j);
elseif h(i,j)==c1(i,j)
e(i,j)=c(i,j);
else h(i,j)==d1(i,j)
e(i,j)=d(i,j);
end
对这一段程序仔细分析,我没有仔细分析前面的程序,但可以猜测以下,h(i,j)肯定会和a1(i,j)、b1(i,j)、c1(i,j)、d1(i,j)中的某一个相等,这样当h(i,j)和a1(i,j)、b1(i,j)、c1(i,j)不相等的时候,就会执行到最后一条else语句
else h(i,j)==d1(i,j)
e(i,j)=d(i,j);
这时候ans=1;就会出现了。
也就是Matlab把h(i,j)==d1(i,j)当做是一条单独的语句,而不是判断条件。
究其原因,就是,if-elseif-else-end最后一个else是不用判断条件的,前面的条件都不满足就会执行else后的语句。
再加上,用来计算的矩阵是由rand随机生成的,这样,就可以很好的解释为什么有时多,有时少,数量不确定的现象了。
所以修改的办法是:1,把h(i,j)==d1(i,j)删除;2,把else改成elseif。
对于这个程序,我感觉用if语句还是比较合理的,用switch-case可以用,但是它不适合这样的分支条件
matlab中if语句如何嵌套使用?
找出第一行是3,第二行是7,把这一行的第1个数换成10.
clear all
clc
a=[2 3 4 5 6;
7 7 7 8 8]';
for i=1:length(a)
if(a(i,2)==7)
if (a(i,1)==3)
b(i,1)=10;
else
b(i,1)=a(i,1);
end
b(i,2)=7;
end
end
复制代码
matlab中if语句实例,哪里出错了?
x1是向量,一般不宜直接用于条件判断语句,例如,【x1<47】为真的条件是,x1所有的元素都小于47,类似这样的条件通常是不满足的,可能导致所有的if和elseif都不满足,最后只能执行else分支。
考虑使用循环逐个元素进行判断。
matlab if语句
function dh=jiangyu (t,h)
%降雨量的表达式
if t<=400
a=6*12*(0.122*10^(-3)-abs(0.00061*t*10^(-3)-0.122*10^(-3)))*cos(pi/9);
else
a=0;
end
%液面高度微分方程中的其他部分:
b=0.7*pi*(0.05)^2*sqrt(2*9.81*h);
c=2*12*sqrt(0.15*h-h^2);
%使结果符合客观事实,增加下面的判定
z=isreal((a-b)/c);
%如果液面高度正常为大于零的数,便按所设微分方程求解
if z==1
dh=(a-b)/c;
%如果液面高度小于零,且此时不再下雨,则液面不再变化
elseif (z==0 & a==0)
dh=0;
%如果液面高度小于零,但仍然下雨,则液面将会上升,速度为下式
else
h=0.0001;
dh=(a-b)/c;
end
end
你的判断等于要改成 ==
没有and这个用法的,用&
表并列直接回车就行了
你的c可能是虚数,注意~
matlab怎么在if语句中再进行if语句?
理论上可以嵌套的if语句个数不限,但是每一个if语句完成后一定要添加end语句与之对应,形式上如下所示:
if 条件
内容
end
或
if 条件
内容
else if
内容
end
或者
if (expression1)
{commands1}
else if (expression2)
{commands2}
else if (expression3)
{commands3}
else if ……
…………………………………
else
{commands}
end
end
end
……
end