我最近(昨天,实际上)开始尝试学习几个即将推出的项目的MATLAB。我有一个简单的问题。对于其中一个项目,我必须编写一个函数,它接受两个符号方程式, f 和 g 。如果我在使用syms x y
之前尝试运行我的功能(因为 f 和 g 仅包含 x 或 y 变量),我得到一个未定义的变量错误。我理解这意味着什么,但我想知道是否只是传递 f 和 g 而不运行syms x y
?
答案 0 :(得分:1)
我不确定问题究竟在哪里,但这就是你可以用两种稍微相似且方便的方式来做新功能定义的方法。
使用函数句柄:将函数输入参数传递给句柄
x = (-1:0.25:1); % input vals
f = @(x) cos(2*pi*x).^2;
g = @(x) sin(2*pi*x).^2;
h = @(f1, f2) f1 + f2;
h(f(x), g(x))
使用符号方程式:仅在构造方程期间使用sym
% symbolic
f = sym('cos(2*pi*x)^2');
g = sym('sin(2*pi*x)^2');
h = f + g;
subs(h, x)
显然,您可以将上述内容概括为多个独立变量,即(x,y).
希望这是近在咫尺的!