将常量替换为公式 matlab

substitute constant to a formula matlab

我在MATLAB中定义:

syms k2 k3;
k1 = k2/k3;

其中 k2k3symbolic variables。然后键入 k1 给出输出:

k1 =

k2/k3

k2k3 分配常数值:

k2 = 1; k3 = 2;

然后我在 matlab 命令行中输入:

>> k1

k1 =

k2/k3

有没有不使用subs函数而显示结果k1 = 1/2 = 0.5的命令?如果我的公式有很多变量,用subs.

不方便

您想使用eval(k1)

syms k2 k3;
k1 = k2/k3;

eval(k1) % output k1 = k2/k3

k2 = 1;

eval(k1) % output k1 = 1/k3

k3 = 2;

eval(k1) % output ans = 0.5

k1       % output k1 = k2/k3

编辑: 评论中指出 subs 以相同的方式工作(并且可能更可取)。来自 subs documentation:

subs(s) returns a copy of s replacing symbolic variables in s with their values obtained from the calling function and the MATLAB® workspace

所以您可以像我上面使用 eval(k1) 一样使用 subs(k1)。它为前两个示例提供相同的输出,最后一个示例利用结果的精确小数形式,如图所示。

subs(k1) % ouput ans = 1/2