找回密码
 欢迎注册
查看: 8091|回复: 3

[擂台] mathematica如何做到分类合并?

[复制链接]
发表于 2016-9-24 09:12:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
比如
{a -> x, a -> y, b -> x2, b -> y2}
处理后得到
{a->{x,y},b->{x2,y2}}
除了人肉的办法,有没有好的办法?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2016-9-24 11:38:09 | 显示全部楼层
你运行过没?你觉得你的语法合理吗?

首先,a被替换为x之后就没有a了,也就是说a->y会是一个无法实现的替换(无动作)。同样,后面的b也只有b->x2是有效的。因此合并没有什么意义。

其次,{a->{x,y},b->{x2,y2}}这种写法的意思是将a替换为{x,y}(一个List结构),而不是分别替换为x,y。

点评

可以先不管他的意图,如果知道了他的意图,可能连Rule都可以省掉了。在这里,我们不妨把Rule当作普通的Head,lazy Evaluation。然后操作List  发表于 2016-9-27 09:54
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2016-9-27 09:52:36 | 显示全部楼层
  1. Normal[Merge[{a -> x, a -> y, b -> x2, b -> y2},Identity]]
复制代码



  1. Normal[GroupBy[{a -> x, a -> y, b -> x2, b -> y2}, First -> Last]]
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-3-29 05:13 , Processed in 0.264152 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表