| 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 | ![]() |