我是一个有用的助手,可以为您翻译以下内容。这是关于编程的中文文章。
问题在于上面看到的代码创建了一个带有输入参数集合(x1, x2, a1, a2)的函数,而不是(x,a),我无法更改输入参数的形式,它必须是统一的。 实际上,我正在尝试编写一个函数,它将创建指定次数的多项式并将其保存到路径中,以便我可以使用'eval'进行计算(不支持polyval),但它可能会更有用。
我正在尝试使用matlab中的符号工具箱创建一个函数。 我一直在尝试创建一个符号向量(而不是符号变量的向量)。 你们知道如何做到这一点吗?而不必在路径中创建和编辑类似文本的matlab函数文件。
- *在创建符号变量和所有其他内容后,我使用'matlabFunction'创建并保存函数。
举个例子:
函数:
function f=test1(x,a) {
f=x(1)/a(1)+x(2)/a(2);
}
代码:
a = sym('a', [1 2]);
x = sym('x', [1 2]);
% f(x, a) = sym('f(x, a)');
r=x(1)/a(1)+x(2)/a(2);
% f(x,a)=r;
% handle=matlabFunction(f(x,a),'file','test1');
handle=matlabFunction(r,'file','test1');
问题在于上面看到的代码创建了一个带有输入参数集合(x1, x2, a1, a2)的函数,而不是(x,a),我无法更改输入参数的形式,它必须是统一的。 实际上,我正在尝试编写一个函数,它将创建指定次数的多项式并将其保存到路径中,以便我可以使用'eval'进行计算(不支持polyval),但它可能会更有用。
matlabFunction
。你能发一下你想转换成函数句柄的确切表达式吗?我在想我们可以通过使用一些正则表达式来修复它... - Amrofh = matlabFunction(r, 'file','test1', 'vars',{a,x})
(如果你喜欢,可以反转顺序{x,a}
)。这告诉MATLAB使用向量作为输入。 - Amro