在matlab中使用向量作为多个输入函数的输入

时间:2016-04-26 20:27:33

标签: matlab function variables

我想在一个接收m个输入的函数中使用维度[m; 1]的向量输入。例如:

syms x1 x2;

f = x1^2 + x2^2;
F = matlabFunction(f);
x = [1;1];
F(x);

上述代码不起作用,因为F是2个输入的函数,它只将向量x视为单个输入。我知道我可以说F(x(1),x(2))并且上面的方法可行,但我想让它适用于m个变量的函数和m长度的矢量。

感谢所有帮助。 感谢。

1 个答案:

答案 0 :(得分:3)

您需要先将x转换为单元格,然后将其与{:}一起传递。

xcell = num2cell(x);
F(xcell{:});

或者,您可以指定在使用Vars parameter致电x1时,希望x2matlabFunction作为数组传递。

F = matlabFunction(f, 'Vars', {[x1, x2]});
F([1 1]);