如何通过 Matlab 代码保留 subs 的新符号值

How to keep new symbolic value for subs remain through Matlab Code

根据已知符号 a 和 b 求解未知符号 x 和 y 后,我在 Matlab 中使用 subs 函数。在根据 a 和 b 求解 x 和 y 之后,我希望 Matlab 使用 a 和 b 而不是 x 和 y。请参阅下面的代码:

clc
clear all
syms a b real;
syms x y real;
eqns = [x + 2*y + 4*b == 5*a;
       y == 3*b];
vars = [x,y];
solution = solve(eqns,vars);
x = subs(x,solution.x)
y = subs(y,solution.y)
tst = 5*vars

这段代码的输出是: x = 5*a - 10*b

y = 3*b

tst=[ 5*x, 5*y]

我想得到关于 a 和 b 的最后一个答案。我假设我对 x 和 y 使用 subs 的那一行应该改变它,但它没有。

谢谢!

您需要在 subs 之后更新您的 vars 矢量:

clc
clear all
syms a b real;
syms x y real;
eqns = [x + 2*y + 4*b == 5*a;
       y == 3*b];
vars = [x,y];
solution = solve(eqns,vars);
x = subs(x,solution.x)
y = subs(y,solution.y)
vars = [x,y];
tst = 5*vars