将向量用作MATLAB中匿名函数的输入

时间:2018-10-07 21:26:56

标签: matlab

让我们说我有一个匿名函数,具有n个输入,f(x1,x2 x3,... xn)和一个长度为n的向量,可以说向量= [1,2,3,... n]。有没有办法让MATLAB将向量的各个值作为f的对应输入?例如:

f = @(x,y,z) x+y+z;
vector = [1,2,3];
f(vector)
ans = 
       6

我想在一个较大的脚本文件中使用此文件,在该文件中我不知道输入的数量,但是程序会根据长度(向量)将其计算出来。

为澄清起见,上面的代码模仿了我想发生的事情。如果将其正确地放入MATLAB中,则会得到:

Not enough input arguments.

1 个答案:

答案 0 :(得分:2)

使用num2cell将向量转换为单元格数组,然后从中生成comma-separated list

>> f = @(x,y,z) x+y+z;
>> vector = [1,2,3];
>> cell_array = num2cell(vector);
>> f(cell_array{:})
ans =
     6