導讀 您好,肖大哥就為大家解答關于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可以用,但是它不適合這樣的分支條件。
本文就講到這里,希望大家會喜歡。