如果用戶輸入無效輸入如何退出MATLAB的M-文件(而不是MATLAB本身)? 我知道如果m文件在運行時出錯,我們可以按Ctrl-C來停止它。但是如果發生不好的事情,我需要一個命令將其放入我的m文件中。如果用戶輸入錯誤輸入,如何退出matlab m文件(不是matlab本身)?
請不要建議「退出」或「退出」命令,因爲他們終止整個MATLAB和我不想要它。
如果用戶輸入無效輸入如何退出MATLAB的M-文件(而不是MATLAB本身)? 我知道如果m文件在運行時出錯,我們可以按Ctrl-C來停止它。但是如果發生不好的事情,我需要一個命令將其放入我的m文件中。如果用戶輸入錯誤輸入,如何退出matlab m文件(不是matlab本身)?
請不要建議「退出」或「退出」命令,因爲他們終止整個MATLAB和我不想要它。
你可以把一個錯誤的命令,例如錯誤(「壞用戶輸入」),它應該停止腳本。
編輯:另外,您也可以只重構代碼不運行,除非你設置的輸入標誌是真實的。像
我不知道你如何定義「退出」,但error
似乎是你需要的功能。
y = input('Please input a non-negative number: ');
if(y<0)
error('input must be non-negative');
end
disp(sprintf('y=%f', y));
嘿我想你可以使用try-catch組合來處理一些有些意想不到的錯誤,並對它做些什麼。
舉個例子,
function [ output ] = test(input)
Bmat = [ 1 1 1 ] % Some matrix
try
input*B;
catch ME
disp(ME.message)
return; % This is the statement that exits your function
end
end
如果運行
>> test([1 1 1])
它不會因爲變量「輸入」和「B」有不匹配的內部尺寸的工作,但「嘗試」語句會拋出一個異常到'catch',並從那裏做你想做的任何事情。在這種情況下,它將在命令行中顯示錯誤消息並退出該功能。
變量「ME」這裏只是用於錯誤處理一個MATLAB對象,ME.message存儲包含解釋器陷入錯誤的類型的字符串。
我剛剛看了一遍你的問題......我想命令「迴歸」可能是你真正之後,你就可以用它來從任何邏輯或循環語句,以及功能退出。
你可以閱讀更多有關「迴歸」命令和錯誤從MATLAB文檔處理,
http://www.mathworks.com/access/helpdesk/help/techdoc/ref/return.html
'return'工作,除非有多個輸出,否則會提示錯誤信息。我猜想,從Matlab錯誤的設計。 – Argyll 2014-06-16 20:04:03
如果有多個地方的功能需要退出,這種解決方案會導致運行的樹它或不是那種如果陳述。不切實際的。 – Argyll 2014-06-16 20:01:07