11

我发现自己试图将自定义类与内置函数接口,并且遇到了只能用 eval 解决的情况,我想要一种“更清洁”的方式。

基本上,内置函数定义为varargout=blabla(varargin) 我在自定义类中定义了一个覆盖函数,如varargout=blabla(varargin). 该函数如下所示:

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

的功能varargin将其从自定义类转换为内置类。

但它不能按原样工作:基本上,当在覆盖函数内部调用内置函数时,它只看到一个输出参数 ( varargout),即使使用多个输出参数调用自定义覆盖函数也是如此。

我基本上通过调用这个来解决它:

[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 回答