matlab跳出異常

2021-10-25 05:39:49 字數 1463 閱讀 5958

首先舉個區域性栗子

a = [1,2,3;4,5,6;7,8,9];

b = [7,8];

try

c = a*b; %有錯誤(列的維度不一致),跳轉到catch語句行並執行

disp(c); %發現錯誤後,該行**不執行

catch errorinfo %捕獲到的錯誤是乙個mexception物件

% disp(errorinfo);

% disp(errorinfo.identifier);

% disp(errorinfo.message);

% disp(errorinfo.stack);

% disp(errorinfo.cause);

c = nan;

%發生錯誤時的其他動作

disp("error")

end

輸出情況:

注釋部分為錯誤資訊的各種屬性:

erroinfoi為綜合資訊

message為錯誤原因

stack為位置

現在,通過乙個跑實驗中自動執行中經常用到的迴圈取物件作例子:

tr = ; %(1,2)(3,4,5)(6,7)是我們需要取的值

c = ;%儲存計算後的結果

a = [3,8];

for i = 1:3

b = cell2mat(tr(i));%cell轉化為矩陣

try

c(i) = a*b'; %有錯誤(列的維度不一致),跳轉到catch語句行並執行

disp(c(i)); %發現錯誤後,該行**不執行

catch errorinfo %捕獲到的錯誤是乙個mexception物件

% disp(errorinfo);

% disp(errorinfo.identifier);

% disp(errorinfo.message);

% disp(errorinfo.stack);

% disp(errorinfo.cause);

c(i) = nan;

%發生錯誤時的其他動作

disp("error")

endend

雖然在b = tr(2)時有異常,但是通過異常捕獲,將異常時的c返回為nan,從而繼續執行b = tr(3)的結果。

結果如下:

py匯入包異常跳出 python 異常處理及包

程式裡的異常 不正常 當python檢測乙個錯誤時,直譯器無法執行下去,反而出現乙個錯誤的提示。異常處理 try 可能出現問題的 except 如果出現問題,則執行該 多個異常處理 try 可能出現問題的 except 異常1 except 異常2 多個異常之間的順序要求 子類在前,父類在後。若使用...

MATLAB困在迴圈中的除錯方法 和 跳出多層迴圈

發現在matlab 2017版本的編輯器視窗中,執行欄中執行按鍵在程式執行時會變成暫停按鍵。在程式迴圈比較多的時候,可以在一些關鍵分支處用上disp語句,可以幫助在命令視窗中觀察程式的運 況,當發現程式被困在迴圈中時,就可以直接按下暫停鍵,此時程式會暫停且所有變數值都會保留,按下暫停鍵後相應位置會變...

Matlab之異常處理機制

優秀的程式設計師能夠指導使用者如何使用他編寫的程式,而且在使用者使用不當時,能夠給出錯誤提示資訊,並引導使用者正確使用函式。例子 先建立計算階乘n!n n 1 n 2 21,然後給函式ex n 輸入正確的引數和錯誤的引數。function ex n m 1 ticfor k 2 n m m k en...