Skipping outputs with anonymous function in MATLAB

后端 未结 2 750

Say I want to create an anonymous function from a m-file-function that returns two outputs. Is it possible to set up the anonymous function such that it only returns the sec

2条回答
  •  情歌与酒
    2020-12-01 19:16

    One way to do this is to define the function:

    function varargout = getOutput(func,outputNo,varargin)
        varargout = cell(max(outputNo),1);
        [varargout{:}] = func(varargin{:});
        varargout = varargout(outputNo);
    end
    

    and then getOutput(@ttest2,2,u,v) gives only the p-value.

    To use it in a cellfun you would need to run:

    probabilities = cellfun(@(u,v)getOutput(@ttest2,2,u,v)...
    

    This eliminates the need to write a wrapper every time, but then you have to make sure this function is always in the path.

提交回复
热议问题