Wolfram mathematica 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中,乘法可以写成空格(乘以[
(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
生成的输出。你有这种经历吗?(我应该说这两种方法都会受到影响;我想知道是否有办法解决这一问题。)