Wolfram mathematica Mathematica在数值计算中不将中心点解释为时间

Wolfram mathematica Mathematica在数值计算中不将中心点解释为时间,wolfram-mathematica,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 只需将\[CenterDot]替换为空格在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

只需将
\[CenterDot]
替换为空格

在Mathematica中,乘法可以写成空格(
乘以[a,b]==ab
)或星号(
乘以[a,b]==a*b
\[CenterDot]
不被解释为乘法。

如果您希望在输入和输出中使用类似的方法将
CenterDot
解释为
时间,只需完成一些其他答案/注释即可

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

SetOptions[EvaluationNotebook[], 
  {AutoMultiplicationSymbol -> True, NumberMultiplier -> "\[CenterDot]"}]
或者在“首选项”对话框中的“外观>数字>乘法”下选择“中心点”

例如:

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

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]"]


是否仍可以将
\[CenterDot]
用作乘法?@Tyilo是的,您可以定义
CenterDot=Times
将其解释(但不显示)为乘法。但我建议在做出这样的改变之前,先熟悉一下Mathematica。如果您评估
FullForm[a\[CenterDot]b]
(也就是说,这不是因为
\[CenterDot]
的名称),这个定义起作用的原因就会很清楚。@Szabolcs:实际上,您将如何使
\[CenterDot]
不被解释为
CenterDot
?或者任何类似的中缀操作符?@Simon我不知道,我从来没有玩过重新定义当你在两个数字之间键入空格时FE自动插入的符号。让我们不要忘记
a~次~b
事实上,我更喜欢
a~(#1\[次]#2&)~b
天哪~我爱~这个地方!-->FullForm=Factorial[this[Complex[0,1][gosh,love],place]](我有点惊讶;这表明了中缀滥用的黑暗面…)Szabolcs,你说“Mathematica中的乘法写为:”并给出了两个选项。我认为
\[Times]
实际上是第三个。这是一个奇怪的问题。当文件上这样说的时候,你会怎么想呢?@Simon恰恰相反:在世界的大部分地区,中心点是标准的乘法符号(我们在小学结束时放弃了×)。许多用户来到Mathematica“作为一个做数学的程序”,而不是作为一种编程语言。最后,有很多简单的方法可以进入∙ , e、 g.调色板、Windows 7的数学感知手写输入等)如果你手写2×3,系统接受它,你能查一下吗?@Simon你也可以在设置中将CenterDot定义为默认的乘法字符,我想这也意味着它可以用于计算。@Szabolcs,Tyilo:两个观点都很好。Simon,提醒我,使用MakesBox而不是Format的原因是什么?(我似乎记得这是一个问题,但我不记得为什么。)@Mr.Wizard:那就是这个问题:谢谢,我知道它就在这里的某个地方。使用
模板框
而不是
解释框
。通过这种方式,您可以编辑
\[CenterDot]
乘法中的术语。+1用于在末尾不保护
时间
!另外,
格式
不如
makebox
稳定,引用迈克尔·皮拉特的话:@Simon关于
格式
剩余部分的一般警告,你能告诉我一个失败的方法吗?@Simon对不起,我在提问之前没有阅读链接的问题。我看到Ctrl+Shift+N失败。在输入单元格中键入
a*b
,然后按
Ctrl-Shift-N
将其转换为标准格式。这将调用
格式
规则,并不知何故陷入循环。如果你找到了解决这个问题的方法,你可以在我的老问题中得到一个闪亮的绿色记号!(编辑:我想我写这篇评论花了太长时间!)@Simon,进一步的实验表明,我无法使用
makebox
方法正确编辑
abc
生成的输出。你有这种经历吗?(我应该说这两种方法都会受到影响;我想知道是否有办法解决这一问题。)