- 注册时间
- 2021-11-19
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 9343
- 在线时间
- 小时
|
本帖最后由 nyy 于 2025-4-14 09:56 编辑
再次升级功能
"在mathematica代码中,把AB=3类型的代码,修改成AB=BA=3,线段长度赋值,AB与BA都赋值,这样两个变量都能用了,这样再不用考虑线段的两个端点哪个在前、哪个在后了,后面使用线段长度变量还能增加代码的可读性
:menu 259.660 mma.替换变量 :.,$s/\(\([A-Z]\)\([A-Z]\)=\)/\1\3\2=/gec<CR>
"在mathematica代码中,替换线段长度变量,比如把BA替换成AB,写代码时用到线段长度变量时,AB与BA两个变量随便用,但是写完代码后,再用编辑器的正则替换(写到菜单里)把BA替换成AB,使得顺序小的A在顺序大的B之前,这样写代码用到线段长度变量时,就不用人工费脑筋考虑A与B哪个在前。同时,还要注意不替换ΔBAC、∠BAC、变量BACD中的BA
:menu 259.661 mma.线段长度变量BA替换成AB :.,$s/[A-Za-z]\@<!\([A-Z]\)\([A-Z]\)[A-Za-z0-9]\@!/\=(submatch(1)>submatch(2)?submatch(2).submatch(1):submatch(1).submatch(2))/gec<CR>
- "在mathematica代码中,把AB=3类型的代码,修改成AB=BA=3,线段长度赋值,AB与BA都赋值,这样两个变量都能用了,这样再不用考虑线段的两个端点哪个在前、哪个在后了,后面使用线段长度变量还能增加代码的可读性
- :menu 259.660 mma.替换变量 :.,$s/\(\([A-Z]\)\([A-Z]\)=\)/\1\3\2=/gec<CR>
- "在mathematica代码中,替换线段长度变量,比如把BA替换成AB,写代码时用到线段长度变量时,AB与BA两个变量随便用,但是写完代码后,再用编辑器的正则替换(写到菜单里)把BA替换成AB,使得顺序小的A在顺序大的B之前,这样写代码用到线段长度变量时,就不用人工费脑筋考虑A与B哪个在前。同时,还要注意不替换ΔBAC、∠BAC、变量BACD中的BA
- :menu 259.661 mma.线段长度变量BA替换成AB :.,$s/[A-Za-z]\@<!\([A-Z]\)\([A-Z]\)[A-Za-z0-9]\@!/\=(submatch(1)>submatch(2)?submatch(2).submatch(1):submatch(1).submatch(2))/gec<CR>
复制代码
第一种办法,赋值的变量实在是太多,第二种办法,写代码的时候,随便用变量,写玩代码后,再用编辑器修改成唯一的变量(把BA换成AB,这样就不存在AB与BA两个变量了),
第二种办法的好处是略微牺牲一点可读性、略微减少一点可维护性。
我选择把两种办法都保留
第一种代码的最终效果见例子
https://bbs.emath.ac.cn/forum.ph ... 9966&pid=104959
这种办法是引入了AB BA x y a b等变量,变量实在是太多,好处是后面的代码的可读性略微高一点点,但是由于引入了 x y a b等变量,求解结果可读性差一些
这种办法办法在写代码的时候轻松一些,毕竟x变量比AB变量少输入字母
第二种代码的最终效果见例子
https://bbs.emath.ac.cn/forum.ph ... 4199&pid=124781
这种办法的好处是AB BA x y a b等变量,只保留了AB,但是由于删除了BA,所以代码可读性略差一点,但是求解结果可读性比较强
这种办法办法在写代码的时候复杂一些,毕竟AB变量比x变量多输入字母
还有一种办法是
https://bbs.emath.ac.cn/forum.ph ... 0072&pid=105014
这种办法,代码可读性略差一些,但是如果注释写好了,最终还是具有可读性的。 |
|