feval、str2func

需要

文字列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: []
元の記事47件を公開 いいね33 310,000以上

おすすめ

転載: blog.csdn.net/kaever/article/details/77939172