在Matlab中,我有一个可变长度值的单元格:
C={A1,...,An}
我应该如何将这些值传递并分配到能够接收可变数量参数的函数中?
f(A1,...,An)
最终如果不可能,我应该如何修改此功能的开头才能使其工作?
答案 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