MATLAB中我們常常用到條件判斷語(yǔ)句結(jié)構(gòu),通過(guò)實(shí)例介紹這個(gè)結(jié)構(gòu)的用法: 1、if..end結(jié)構(gòu),運(yùn)行下面的句子,此條件語(yǔ)句是判斷5是否大于3,如果大于3,就將1賦值給; 2、if.elseend 結(jié)構(gòu),我們以如下內(nèi)容進(jìn)行判斷: 運(yùn)行以上語(yǔ)句,結(jié)果如
MATLAB中我們常常用到條件判斷語(yǔ)句結(jié)構(gòu),下面就通過(guò)實(shí)例介紹一下這個(gè)結(jié)構(gòu)的用法
方法
運(yùn)行上面的句子,此條件語(yǔ)句是判斷5是否大于3,如果大于3,就將1賦值給a
嵌套if語(yǔ)句的語(yǔ)法如下: if % Executes when the boolean expression 1 is true if % Executes when the boolean expression 2 is true end end 例如: 創(chuàng)建腳本文件并在其中鍵入以下代碼 : a = 100; b = 200; % check the boolean condition i
a1=1,a2=1,判斷a1是否大于a2,顯然不大于,然后就執(zhí)行else語(yǔ)句,給a賦值為2,
語(yǔ)法 if expression statements end MATLAB計(jì)算表達(dá)式,如果產(chǎn)生一個(gè)邏輯真或者非零結(jié)果,然后就執(zhí)行一條或者多條MATLAB命令語(yǔ)句。 當(dāng)有嵌套if時(shí),每一個(gè)if必須和一個(gè)相應(yīng)的end匹配。當(dāng)你在if語(yǔ)句里面嵌套使用else if或者else時(shí),一般的格式如下
a1=a2=1,判斷a1>a2?不滿足,執(zhí)行elseif語(yǔ)句,a1<a2,不滿足,執(zhí)行else語(yǔ)句,a=3
a&b或函數(shù)and(a,b)表示a和b做邏輯與運(yùn)算,當(dāng)a b全為非零時(shí),運(yùn)算結(jié)構(gòu)為1,否則為0. if語(yǔ)句后的條件判斷,兩種方式均可以。
擴(kuò)展閱讀,以下內(nèi)容您可能還感興趣。
matlab if else語(yǔ)句怎么用?
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
對(duì)這一段程序仔細(xì)分析,我沒(méi)有仔細(xì)分析前面的程序,但可以猜測(cè)以下,h(i,j)肯定會(huì)和a1(i,j)、b1(i,j)、c1(i,j)、d1(i,j)中的某一個(gè)相等,這樣當(dāng)h(i,j)和a1(i,j)、b1(i,j)、c1(i,j)不相等的時(shí)候,就會(huì)執(zhí)行到最后一條else語(yǔ)句
else h(i,j)==d1(i,j)
e(i,j)=d(i,j);
這時(shí)候ans=1;就會(huì)出現(xiàn)了。
也就是Matlab把h(i,j)==d1(i,j)當(dāng)做是一條單獨(dú)的語(yǔ)句,而不是判斷條件。
究其原因,就是,if-elseif-else-end最后一個(gè)else是不用判斷條件的,前面的條件都不滿足就會(huì)執(zhí)行else后的語(yǔ)句。
再加上,用來(lái)計(jì)算的矩陣是由rand隨機(jī)生成的,這樣,就可以很好的解釋為什么有時(shí)多,有時(shí)少,數(shù)量不確定的現(xiàn)象了。
所以修改的辦法是:1,把h(i,j)==d1(i,j)刪除;2,把else改成elseif。
對(duì)于這個(gè)程序,我感覺(jué)用if語(yǔ)句還是比較合理的,用switch-case可以用,但是它不適合這樣的分支條件
matlab中if語(yǔ)句如何嵌套使用?
找出第一行是3,第二行是7,把這一行的第1個(gè)數(shù)換成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
復(fù)制代碼
matlab中if語(yǔ)句實(shí)例,哪里出錯(cuò)了?
x1是向量,一般不宜直接用于條件判斷語(yǔ)句,例如,【x1<47】為真的條件是,x1所有的元素都小于47,類似這樣的條件通常是不滿足的,可能導(dǎo)致所有的if和elseif都不滿足,最后只能執(zhí)行else分支。
考慮使用循環(huán)逐個(gè)元素進(jìn)行判斷。
matlab if語(yǔ)句
function dh=jiangyu (t,h)
%降雨量的表達(dá)式
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);
%使結(jié)果符合客觀事實(shí),增加下面的判定
z=isreal((a-b)/c);
%如果液面高度正常為大于零的數(shù),便按所設(shè)微分方程求解
if z==1
dh=(a-b)/c;
%如果液面高度小于零,且此時(shí)不再下雨,則液面不再變化
elseif (z==0 & a==0)
dh=0;
%如果液面高度小于零,但仍然下雨,則液面將會(huì)上升,速度為下式
else
h=0.0001;
dh=(a-b)/c;
end
end
你的判斷等于要改成 ==
沒(méi)有and這個(gè)用法的,用&
表并列直接回車就行了
你的c可能是虛數(shù),注意~
matlab怎么在if語(yǔ)句中再進(jìn)行if語(yǔ)句?
理論上可以嵌套的if語(yǔ)句個(gè)數(shù)不限,但是每一個(gè)if語(yǔ)句完成后一定要添加end語(yǔ)句與之對(duì)應(yīng),形式上如下所示:
if 條件
內(nèi)容
end
或
if 條件
內(nèi)容
else if
內(nèi)容
end
或者
if (expression1)
{commands1}
else if (expression2)
{commands2}
else if (expression3)
{commands3}
else if ……
…………………………………
else
{commands}
end
end
end
……
end
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:0731-84117792 E-MAIL:11247931@qq.com