假设我有一个函数f,它有一些必需和可选的形式参数(因此可以在不同点使用不同数量的参数进行调用)。假设对fI have a list, 的特定调用L,其中按顺序包含我想要传递给 的参数f。有没有什么方法可以调用fusing L,以便将 的第 i 个元素L用作i传递给 的第 个实际参数f?
或者更一般地说,将列表 L 扩展到传递的下一个参数。
用matlab术语来说L就是一个元胞数组,所以如果我有一个matlab函数f
function val=f(a1,a2,a3, a4)
% test to see if a4, opt arg, was passed
% if not, default it to 0;
if(~exist('a4','var'))
a4=0;
end
val = a1+a2+a3+a4;
end
Run Code Online (Sandbox Code Playgroud)
和一个 matlab 元胞数组C(概念上对应于上面的 python 列表L)
C = {1,2,3};
Run Code Online (Sandbox Code Playgroud)
我可以f这样调用:
result=f(C{:}) % …Run Code Online (Sandbox Code Playgroud)