mathematica 发表于 2018-12-22 12:05:13

mathematica如何把结果中的->替换成=

比如
Solve
返回结果
{{x -> -2}, {x -> 2}}
但是我要的结果是
{{x = -2}, {x = 2}}

->这个有点反人类,
我想要等号比较符合常人思维,
应该如何实现呢

kastin 发表于 2018-12-22 14:23:16

Solve /. Rule -> Equal

mathematica 发表于 2018-12-22 16:12:41

kastin 发表于 2018-12-22 14:23
Solve /. Rule -> Equal

不错!
不过我希望得到的是一个等号,而这个是两个,有没有办法呢?

mathematica 发表于 2018-12-22 16:18:29

kastin 发表于 2018-12-22 14:23
Solve /. Rule -> Equal

我自己找到一个办法,
就是选中文字,
然后按菜单里的编辑,然后选择查找(或者直接CTRL+F),
然后把"->"替换成"=",
这个办法简单粗暴,我喜欢.

mathematica 发表于 2018-12-22 16:21:21

kastin 发表于 2018-12-22 14:23
Solve /. Rule -> Equal

主要是我要把一部分结果打印出来,所以->符号不好,
所以我需要=符号
不过你让我学到一招

wayne 发表于 2018-12-22 17:01:23

在Mathematica里,=号是Set函数。不属于延迟执行的表达式。需要Hold 一下
Solve /. Rule -> (HoldForm] &)

kastin 发表于 2018-12-22 17:02:29

mathematica 发表于 2018-12-22 16:12
不错!
不过我希望得到的是一个等号,而这个是两个,有没有办法呢?

两种办法:
1. Solve/.Rule:>ToString<>" = "<>TextString@y

2. Solve /.
Rule -> ExpressionCell, "Traditional"]

hujunhua 发表于 2018-12-23 17:21:23

Mathematica解方程的结果用“->”,给出的是一种替换规则,为什么呢?有什么好处呢?
因为数学计算和推导中经常要将解出的结果代入到其它表达式中,以替换规则给出的结果就很方便代入。

比如Solve
返回结果
{{x -> -2}, {x -> 2}}
如果你想得到方程的解集,直接用x/.%, 立马得到{-2,2}.
或者,你想得到f(x)=x^3+4x^2+3x+1的值,那么输入f(x)/.%, 立即得到{3,31}.

你还觉得这样反人类么?

mathematica 发表于 2018-12-24 12:29:07

hujunhua 发表于 2018-12-23 17:21
Mathematica解方程的结果用“->”,给出的是一种替换规则,为什么呢?有什么好处呢?
因为数学计算和推导 ...

给你点一万个赞!
页: [1]
查看完整版本: mathematica如何把结果中的->替换成=