matlabif語句畫分段函數(matlabif語句)

導讀 您好,肖大哥就為大家解答關于matlabif語句畫分段函數,matlabif語句相信很多小伙伴還不知道,現在讓我們一起來看看吧!1、if h(i,j...

您好,肖大哥就為大家解答關于matlabif語句畫分段函數,matlabif語句相信很多小伙伴還不知道,現在讓我們一起來看看吧!

1、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;就會出現了。

2、也就是Matlab把h(i,j)==d1(i,j)當做是一條單獨的語句,而不是判斷條件。

3、究其原因,就是,if-elseif-else-end最后一個else是不用判斷條件的,前面的條件都不滿足就會執行else后的語句。

4、再加上,用來計算的矩陣是由rand隨機生成的,這樣,就可以很好的解釋為什么有時多,有時少,數量不確定的現象了。

5、所以修改的辦法是:1,把h(i,j)==d1(i,j)刪除;2,把else改成elseif。

6、對于這個程序,我感覺用if語句還是比較合理的,用switch-case可以用,但是它不適合這樣的分支條件。

本文就講到這里,希望大家會喜歡。

免責聲明:本文由用戶上傳,如有侵權請聯系刪除!