MATLAB Function Reference |
執行一個含有MATLAB指令的字串(Execute a string containing a MATLAB expression)
Syntax
eval(expression) eval(expression,catch_expr) [a1,a2,a3,...] = eval(function(b1,b2,b3,...))
Description
eval(expression)
執行含有合法MATLAB指令的字串 expression
。
你也可以用中括號(square brackets)把子字串組合成 expression
。如下所示:
expression = [string1,int2str(var
),string2,...]
eval(expression,catch_expr)
執行 expression
,若執行時發生錯誤,則執行 catch_expr
。而 lasterr
函式可在 expression
發生錯誤時接收到錯誤訊息。當 expression
是從子字串組合而成時,這將會十分有用。若不是因為組合子字串產生的錯誤,可用 try...catch
來控制程式碼的流程來檢查。
[a1,a2,a3,...] = eval(function(b1,b2,b3,...))
執行引數為 b1,b2,b3,...
, 的 function
並回傳指定的輸出結果。
Remarks
我們建議使用 eval
輸出引數,而較不建議將輸出引數擺在 expression
中。下面的第一行語法中,MATLAB解析器(parser)並不會嚴格檢查 expression
,所以可能產生錯誤和其他難以預料的情況。
eval('[a1,a2,a3,...] = function(var)') % 不建議使用 [a1,a2,a3,...] = eval('function(var)') % 建議使用
Examples
for n = 1:12 magic_str = ['M',int2str(n),' = magic(n)']; eval(magic_str) end
下列的 showdemo
函式執行由使用者所選擇的程式展示(that runs a MATLAB demo selected by the user)。若發生錯誤,將會顯示錯誤訊息。
function showdemo(demos) errstring = 'Error running demo: '; n = input('Select a demo number: '); eval(demos(n,:),'[errstring demos(n,:)]') % ----- end of file showdemo.m ----- D = ['odedemo'; 'quademo'; 'fitdemo']; showdemo(D) Select a demo number: 2 ans = Error running demo: quademo
下列範例對一個3維陣列執行 size 函式,回傳值 d1
, d2
, d3
為陣列的維度。
A = magic(4); A(:,:,2) = A'; [d1,d2,d3] = eval('size(A)') d1 = 4 d2 = 4 d3 = 2
See Also
assignin
, catch
, evalin
, feval
, lasterr
, try
etreeplot | evalc |