【问题标题】:Using vector as inputs to anonymous function in MATLAB在 MATLAB 中使用向量作为匿名函数的输入
【发布时间】:2018-10-07 21:26:56
【问题描述】:

假设我有一个匿名函数,它有 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.

【问题讨论】:

    标签: matlab


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-21
      相关资源
      最近更新 更多