请问如何让MMA自动转变单位?
mathematica吧
全部回复
仅看楼主
level 9
mma确定单位后不会自动转换,如kPa*m^2,不会自动转换为kN,需要手动转换。
2021年05月16日 14点05分 1
level 9
如何让mma的单位按照之间想要的顺序写啊,比如我想要的弯矩是kN*m,而mma是m*kN,看着好难受啊。[泪]
创建单位的代码:
m = Quantity[ "Meters"]
kN = Quantity["kNewtons"]
kPa = Quantity["kPascals"]
2021年05月16日 14点05分 4
吧务
level 10
「让mma的单位按照之间想要的顺序写」:你可挖掘QuantityUnitBox的定义,修改之
「自动转变单位」:目前的Quantity没有这个设计。比较合适的做法是自己定义一个转换器,或者直接为UnitConvert提供一个新的单位制
2021年05月16日 14点05分 5
吧务
level 10
我帮你挖出来了,是QuantityUnits`Private`getCompoundUnitBoxes
第二个自己写吧
2021年05月16日 14点05分 6
吧务
level 10
QuantityUnits`Private`getCompoundUnitBoxes@Quantity[v_,"Meters"*"Kilonewtons"] := RowBox[{"\"kN\"","\[ThinSpace]","\"m\""}]
2021年05月16日 14点05分 7
谢谢小吧[吐舌]
2021年05月16日 23点05分
这得说句佩服,我自己的话大概率就是用$PrePrint凑合一下……
2021年06月05日 01点06分
@xzcyr PrintDefinitions的笔记本太方便了,方便到我专门设了个快捷键给它。要看trace的话就挺花时间了,跟挖定义比不了。
2021年06月05日 08点06分
吧务
level 15
@asdasd1dsadsa 你的发现派上用场了,SE帖子《How to have the units for energy show as kW h instead of h kW?》,编号 265486
2022年04月02日 14点04分 8
1