Mathematica在数值计算中没有将CenterDot解释为Times

时间:2011-12-02 08:57:07

标签: wolfram-mathematica

为什么Mathematica没有显示

的数值结果
(0.8\[CenterDot]452\[CenterDot]20+1.5\[CenterDot]4180\[CenterDot]10
  -2\[CenterDot]900\[CenterDot]100) / (0.8\[CenterDot]452
  +1.5\[CenterDot]4180-1\[CenterDot]2\[CenterDot]900) // N

4 个答案:

答案 0 :(得分:9)

只是为了完成其他一些答案/评论,如果您希望{/ 1}}在输入和输出中使用类似

的内容解释为CenterDot
Times

如果您希望默认情况下加载init.m,可以将其添加到{{3}}。

这适用于数字和符号表达式,例如

Unprotect[CenterDot, Times];
CenterDot = Times;
Times /: MakeBoxes[Times[a__], fmt_] := 
  With[{cbox = ToBoxes[HoldForm[CenterDot[a]]]}, 
   InterpretationBox[cbox, Times[a]]];
Protect[CenterDot, Times];

您还可以通过执行

使空格分隔的数字之间的自动插入的乘法符号为In[5]:= 1\[CenterDot]2\[CenterDot]3 Out[5]= 6 In[6]:= a b c Out[6]= a\[CenterDot]b\[CenterDot]c
CenterDot

或在外观>下的偏好设置对话框中选择中心点。数字>乘法

例如:
screenshot

答案 1 :(得分:4)

只需用空格替换\[CenterDot]

答案 2 :(得分:4)

Mathematica中的乘法被写为空格(Times[a,b] == a b)或星号(Times[a,b] == a*b)。 \[CenterDot]不会被解释为乘法。

答案 3 :(得分:1)

我认为西蒙的第一种方法可以写得更简洁。请查看:

Unprotect[Times];

CenterDot = Times;

Format[a_*b__] := Interpretation[HoldForm[a\[CenterDot]b], a*b];

第二次尝试。我相信这适用于Convert To > StandardForm和编辑。

CenterDot = Times;

MakeBoxes[Times[x__], _] := RowBox @ Riffle[ToBoxes /@ {x}, "\[CenterDot]"]