我有代码:
C(s):=E(s)*G(s);
B(s):=C(s)*H(s);
openLoopTransferFunction:=B(s)/E(s)
为什么 Mupad 给出输出 e(s)?穆帕德输出:
G(s)*exp(1)(s)(或用蓝色写成 G(s)*e(s))
我怎样才能让我的 E(s) 不会被 Mupad 自动更改……老实说,这是迟钝的……奖励 :(
....Wtf
E(s):=R(s)-B(s) 错误:标识符“E”受到保护。[_分配]
我有代码:
C(s):=E(s)*G(s);
B(s):=C(s)*H(s);
openLoopTransferFunction:=B(s)/E(s)
为什么 Mupad 给出输出 e(s)?穆帕德输出:
G(s)*exp(1)(s)(或用蓝色写成 G(s)*e(s))
我怎样才能让我的 E(s) 不会被 Mupad 自动更改……老实说,这是迟钝的……奖励 :(
....Wtf
E(s):=R(s)-B(s) 错误:标识符“E”受到保护。[_分配]
MuPAD 中有一些受保护的标识符。通常,他们使用大写字母。例如,I
表示虚数单位,E
表示欧拉数。E
查看输入(竖直字母'e')和e
(倾斜字母'e')之间的区别。
如果您想以您的方式使用这些标识符中的任何一个,您可以unprotect
:
unprotect E
结果是:
ProtectLevelError
这不是错误消息,而是您刚刚更改的以前的保护级别。通过再次输入相同的命令来检查成功的更改。这一次,您将获得:
ProtectLevelNone
现在您可以E
像分配给任何其他标识符一样分配给:
E(s) := R(s) - B(s);
将给出预期的结果。
如果你不想E
明确定义,你应该在解除保护后将其删除:
delete(E)
然后它将像任何其他符号一样可用。
无论如何,如果您以后需要使用欧拉数,您将不得不使用exp(1)
而不是E
.
要获取所有长度为 1 的标识符的列表,请键入:
select(op(map(op(anames(All)), expr2text)), x -> bool(length(x) = 1))
给予:
"E", "I", "O", "D"
同样,对于长度二,这给出:
"N_", "Re", "R_", "Si", "C_", "is", "Z_", "op", "id", "Li", "ln", "Im", "Ax",
"Q_", "fp", "Ci", "Ei"