shabbychef..
9
我写了一个第k个函数:
function kth = kthout(k,ffnc,varargin)
%% kthout: take the kth varargout from a func call %FOLDUP
%
% kth = kthout(k,ffnc,varargin)
%
% input:
% k which varargout to get
% ffnc function to call;
% varargin passed to ffnc;
% output:
% kth the kth argout;
% global:
% nb:
% See also:
% todo:
% changelog:
%
%% %UNFOLD
[outargs{1:k}] = feval(ffnc,varargin{:});
kth = outargs{k};
end %function
然后你可以打电话
val_i_want = kthout(3,@myfunc,func_input_1,func_input_2); %etc
你也可以像这样结束这个功能
func_i_want = @(varargin)(kthout(3,@myfunc,varargin{:})); %assuming you want the 3rd output.
之后你使用
val_i_want = func_i_want(func_input_1,func_input_2);
请注意,使用这样的匿名函数会产生开销,而这在我将要调用数千次的代码中不会发生.