假设我写了一个包含3个可分离函数的函数(方程组)。我想计算3个不同变量的函数值但我不想使用&;sub &;函数。我要做的是输入一个包含变量期望值的向量,然后计算主函数,它是一个向量。我怎么能那样做呢?注意,我不想通过每个变量调用函数。下面是我的代码:
syms x y z
f1 = symfun(x.^2+3.*x.*y,[x,y,z]);
f2 = symfun(z.^3+y-x.^3-12,[x,y,z]);
f3 = symfun(2*z+x.*y+z.*x+1,[x,y,z]);
f = [f1;f2;f3];
我的意思是计算f
函数例如:f([12 4 6])
而不是f(12 4 5)
不是最优雅的,但目前我能想到的最好的方法是将其放在函数包装器中。这可能是作为数组传递输入的一种方式。这将弥合索引数组输入以传递到symfcn
(符号函数)之间的差距。
f([12 4 6])
function [Results] = f(Inputs)
syms x y z
f1(x,y,z) = x.^2+3.*x.*y;
f2(x,y,z) = z.^3+y-x.^3-12;
f3(x,y,z) = 2*z+x.*y+z.*x+1;
Sym_Functions = [f1;f2;f3];
Results = Sym_Functions(Inputs(1),Inputs(2),Inputs(3));
end