你有几个选择...
选项 #1:自动生成函数
如果您拥有4.9 (R2007b+) 或更高版本的符号工具箱,您可以使用matlabFunction函数将符号表达式转换为匿名函数或函数 M 文件。文档中的一个示例:
>> syms x y
>> r = sqrt(x^2 + y^2);
>> ht = matlabFunction(sin(r)/r)
ht =
@(x,y)sin(sqrt(x.^2+y.^2)).*1./sqrt(x.^2+y.^2)
选项 #2:手动生成函数
由于您已经编写了一组符号方程,您可以简单地将部分代码剪切并粘贴到函数中。这是您上面的示例的样子:
function output = f(beta,n1,n2,m,aa)
u = sqrt(n2-beta.^2);
w = sqrt(beta.^2-n1);
a = tan(u)./w+tanh(w)./u;
b = tanh(u)./w;
output = (a+b).*cos(aa.*u+m.*pi)+(a-b).*sin(aa.*u+m.*pi);
end
调用此函数f
时,您必须输入beta
和 4 个常量的值,它将返回评估主表达式的结果。
注意:由于您还提到要找到 的零点f
,您可以尝试在符号方程上使用SOLVE函数:
zeroValues = solve(f,'beta');