首页 文章

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

提问于
浏览
1

假设我有一个带有n个输入的匿名函数,f(x1,x2 x3,... xn)和一个长度为n的向量,比如说vector = [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 回答

  • 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
    

相关问题