需要
文字列Aがあり、Aは実際には関数名またはクラス名です。関数A()を実行するか、新しいAオブジェクトを作成します。
何
[y1,...,yN] = feval(fun,x1,...,xM)
funは関数名またはハンドル、X1 ... XMは関数のパラメーター、y1 ... yNは関数の戻り値です。fevalはこの関数を実行し、結果を返します。
コード
- 執行機能
>> A='round';
>> feval(A,pi)
ans =
3
- 実行クラス、新しいオブジェクト
qubit.m
classdef qubit
properties
type;
end
end
>> B='qubit';
>> res=feval(B)
res =
qubit (具有属性):
type: []
拡大する
この需要を満たす他の方法はありますか?次のように:
fh = str2func(c)
文字列cを関数ハンドルに変換するには、str2func()str2funcを使用します。たとえば、上記の2つの例:
>> A='round';
>> r=str2func(A)
r =
包含以下值的 function_handle:
@round
>> r(pi)
ans =
3
>> B='qubit';
>> r=str2func(B)
r =
包含以下值的 function_handle:
@qubit
>> r()
ans =
qubit (具有属性):
type: []