首頁 > 其他

MATLAB程式執行時出現錯誤怎麼辦?

2019-12-25 03:19:13

對於初學者來說,開發MATLAB程式時,經常回出現諸多錯誤。MATLAB程式執行時出現錯誤後,可通過適當的方法定位和查詢,操作步驟如下所列。

1

下述方法描述中,採用如下範例程式進行說明。%範例程式[xx,yy] = meshgrid(1:20,1:20);d = sqrt(xx.^2+yy.^2);zz = peaks(10);out = d + zz;surf(out);shading interp;

2

MATLAB程式執行錯誤後,切換到MATLAB命令列中,觀察命令列中的錯誤資訊,確定錯誤原因


3

在錯誤資訊中,查詢源程式中錯誤程式碼的行數,點選行數連結,可以直接定位錯誤語句


4

錯誤語句定位後,自動跳轉到程式碼編輯器中,在程式碼編輯器中通過游標標識錯誤程式碼的位置


5

確定錯誤語句後,通過F12快捷鍵在錯誤語句處設定斷點


6

斷點設定完成後,通過F5快捷鍵重新執行程式,程式會在斷點處停止執行,進入偵錯狀態


7

在偵錯狀態下有多個步驟可以查詢程式問題的原因。

(1)將滑鼠放置在變數上方,這時程式碼編輯器會自動顯示變數的型別、維數、各維大小等資訊,根據此資訊幫助程式設計師查詢程式中變數錯誤原因。


8

在偵錯狀態下有多個步驟可以查詢程式問題的原因。

(2)將問題程式碼行複製到在MATLAB命令列中執行,重現錯誤。這樣可以反復重新錯誤,而不中斷程式執行,而且不用重新執行程式,提高偵錯效率。



9

在偵錯狀態下有多種方法可以查詢程式問題的原因。

(3)通過whos、size、help等命令協助確定錯誤原因。其中,whos命令可以檢視當前工作區中變數列表,size可以確定某一變數的維數和各維大小,help可以確定某一操作符或函數的幫助資訊。

如:

K>> whos

  Name           Size            Bytes  Class     Attributes

  ans            1x2                16  double              

  d             20x20             3200  double              

  filename       1x60              120  char                

  xx            20x20             3200  double              

  yy            20x20             3200  double              

  zz            10x10              800  double              

K>> size(zz)

ans =

    10    10

K>> size(d)

ans =

    20    20

K>> help +

plus - Addition

    This MATLAB function adds arrays A and B and returns the result in C.

    C = A + B

    C = plus(A,B)

    plus 的參考頁

    另請參閱 cumsum, minus, sum, uplus

    名為 plus 的其他函數

        finance/plus, fixedpoint/plus, symbolic/plus, matlab/plus, +, 

        symbolic/plus, +, matlab/+, symbolic/+

K>> 



10

仔細分析上述資訊,最終確定MATLAB程式執行錯誤的原因。上述範例中,程式執行錯誤的原因為:變數a和變數zz的行數和列數不一致,不符合+操作符的要求。

IT145.com E-mail:sddin#qq.com