11

カスタムクラスを組み込み関数とインターフェイスさせようとしていることに気づき、evalでしか解決できない状況を見つけました。「よりクリーンな」方法が必要です。

基本的に、組み込み関数はvarargout=blabla(varargin) 、カスタムクラスでオーバーライドされた関数をとして定義したように定義されますvarargout=blabla(varargin)。関数は次のようになります。

function varargout=blabla(varargin)
    varargout=blabla(function_of_varargin)
end

の関数は、vararginそれをカスタムクラスから組み込みクラスに変換します。

ただし、そのままでは機能しません。基本的に、組み込み関数がオーバーライドされた関数内で呼び出されるとvarargout、カスタムのオーバーライドされた関数が複数の出力パラメーターで呼び出された場合でも、出力パラメーター()は1つしか表示されません。

私は基本的にこれを呼び出すことによってそれを解決しました:

[varargout{1},varargout{2},...,varargout{nargout}]=blabla(function_of_varargin)

ループと評価を使用してLHSを構築します。

4

1 に答える 1

7

これを試しましたか:

[varargout{1:nargout}] = blabla(varargin{:})

?

于 2012-10-17T12:41:50.597 に答える