我想在一个接收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长度的矢量。
感谢所有帮助。 感谢。
答案 0 :(得分:3)
您需要先将x
转换为单元格,然后将其与{:}
一起传递。
xcell = num2cell(x);
F(xcell{:});
或者,您可以指定在使用Vars
parameter致电x1
时,希望x2
和matlabFunction
作为数组传递。
F = matlabFunction(f, 'Vars', {[x1, x2]});
F([1 1]);