2

想象一下,我在 MuPad Notebook 中定义了两个变量:

x:=2;
y:=5

对于产品

z=x*y

我得到显示:

在此处输入图像描述

如果我使用hold,我可以得到表达式:

z=hold(x*y)

在此处输入图像描述

但现在我想同时拥有显示的表达式和结果。对我来说似乎合乎逻辑的两个选项不起作用:

z=hold(x*y);z

z=hold(x*y);eval(z);

在此处输入图像描述

如何显示表达式和结果? 如果在两行中就可以了,但我更喜欢在一行中:

z = xy = 10

4

1 回答 1

2

我尝试了一些与print, expr2text,的组合hold_concat但找不到令人信服的解决方案来获得所需的结果。但是有一个解释为什么第二行只是返回z而不是10

赋值与方程

z是第二行的结果,因为您还没有分配一些东西z。所以结果说zz。在 MuPad=中是表达式的一部分。赋值运算符:=因此与 Matlab 中的不同。它们之间的唯一区别是冒号。

写一个方程

为了编写方程式,我们将=其用作表达式的一部分。有一个等价的功能:_equal。所以以下两行生成相同的结果:

x+y = 2
_equal(x+y, 2)

结果1

分配valuex

对于我们使用的作业:=(在 Matlab 中这将是 only =)。有一个等价的功能:_assign。同样,以下两行生成相同的结果:

x := value
_assign(x, value)

结果2

将方程分配x+y = 2eqn

在这里我们可以清楚地看到区别:

eqn := x+y = 2
_assign(eqn, _equal(x+y, 2))

结果3

于 2015-07-26T19:30:49.470 回答