想象一下,我在 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
我尝试了一些与print
, expr2text
,的组合hold
,_concat
但找不到令人信服的解决方案来获得所需的结果。但是有一个解释为什么第二行只是返回z
而不是10
。
z
是第二行的结果,因为您还没有分配一些东西z
。所以结果说z
是z
。在 MuPad=
中是表达式的一部分。赋值运算符:=
因此与 Matlab 中的不同。它们之间的唯一区别是冒号。
写一个方程
为了编写方程式,我们将=
其用作表达式的一部分。有一个等价的功能:_equal
。所以以下两行生成相同的结果:
x+y = 2
_equal(x+y, 2)
分配value
给x
对于我们使用的作业:=
(在 Matlab 中这将是 only =
)。有一个等价的功能:_assign
。同样,以下两行生成相同的结果:
x := value
_assign(x, value)
将方程分配x+y = 2
给eqn
在这里我们可以清楚地看到区别:
eqn := x+y = 2
_assign(eqn, _equal(x+y, 2))