我们可以更新或扩展varargin吗?

时间:2018-06-22 22:24:56

标签: matlab

如果我有两个带有varargin参数的函数:

setTimeout(previous, defaults.pressDelay)

例如,如果我这样做

aroundRadius: all

我们想做

all

内部栏。这可能吗?

1 个答案:

答案 0 :(得分:2)

是的,由于函数的输入是coma separated list,因此,您可以使用所需的任何过程来创建一个单元格数组,其中每个元素都是输入之一,然后使用冒号运算符。

function bar(varargin)
    % e.g. interweave with 42
    A=cell2mat(varargin);
    B=42*ones(size(A));
    C = reshape([A; B], [], 1)';
    % create cell
    inputs=mat2cell(C,1,length(C)); 

    % now inputs is a cell where each element is an input

    foo(inputs{:}); %colon operator
end