将可变数量的参数传递给函数

时间:2017-12-10 03:54:58

标签: matlab function arguments

在Matlab中,我有一个可变长度值的单元格:

C={A1,...,An}

我应该如何将这些值传递并分配到能够接收可变数量参数的函数中?

f(A1,...,An)

最终如果不可能,我应该如何修改此功能的开头才能使其工作?

2 个答案:

答案 0 :(得分:2)

您需要通过大括号索引将单元格数组转换为comma-separated list,即使用func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) { }

C{:}函数示例:

reshape

答案 1 :(得分:1)

这正是'varargin'为您所做的。读入多个变量,例如f(a,b,c),并将它们存储在单元格数组中。

然后你可以选择其中一种“快速而肮脏”的处理方法:

function asdf(varargin)
  yourarguments=[varargin{:}]; % if all numerical
  yourargumentscontain=contains(varargin,'asdf'); %if strings contained
  all_processed_args=cellfun(@(x) whateveryouwant_function(x), varargin); %for older versions of matlab
end

有关此处的更多文档:https://ch.mathworks.com/help/matlab/matlab_prog/parse-function-inputs.html