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<a2,不滿足,執行else語句,a=3
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
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com