找回密码
 注册
Simdroid-非首页
查看: 319|回复: 4

[编程进阶] Mathematica中的函数式编程:Map运算

[复制链接]
发表于 2011-8-23 15:42:23 | 显示全部楼层 |阅读模式 来自 上海
本帖最后由 eigen 于 2011-8-23 15:52 编辑

Mathematica中的Map运算非常强大。可以很方便地处理批量数据甚至批量函数。我总结了一下相关的内

容,供大家参考。

例如:
处理批量数据:
  1. Map[f,{a,b,c}]
复制代码


结果是:
{f(a),f(b),f(c)}

更强大的是处理批量函数映射批量数据:
  1. MapThread[#1@#2 &, {{f, g, h}, {x, y, z}}]
复制代码


或者用广义内积:
  1. Inner[#1@#2 &, {f, g, h}, {x, y, z}, List]
复制代码


结果是:
{f(x),g(y),h(z)}

还有外积运算:

  1. Outer[#1@#2&, {Sin, Cos}, {x, y, z}]
复制代码


结果是:
{{Sin[x], Sin[y], Sin[z]}, {Cos[x], Cos[y], Cos[z]}}

注:
1.Mathematica中的Map和MapThread,相当于Haskell中的map和 zipWith。
2. 不同的是,Mathematica中的MapThread不同的列必须长度一样,否则报错;
而Haskell中的zipWith不同的列如果长度不一样也能计算,但把长的列截断成和最短列一样长再计算。

评分

1

查看全部评分

发表于 2011-8-23 23:32:04 | 显示全部楼层 来自 台湾
回复 不支持

使用道具 举报

 楼主| 发表于 2011-8-25 00:11:32 | 显示全部楼层 来自 上海松江区
本帖最后由 eigen 于 2011-8-25 00:21 编辑

谢谢guocong89版主给我加分,并且谢谢chungyuandye 老师提供的flash网址。据我所知,这些swf文件是由韩国人Keehong Song做的。他的网站地址是:http://mathematica.co.kr/ 。上面有更多flash,非常生动形象地教大家使用Mathematica函数,学习一些基本并且重要的数学概念和方法。我极力向大家推荐!
回复 不支持

使用道具 举报

发表于 2011-9-1 10:57:00 | 显示全部楼层 来自 河南
谢谢了啊。
回复 不支持

使用道具 举报

发表于 2012-1-11 04:33:02 | 显示全部楼层 来自 英国
非常感谢.
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-26 17:48 , Processed in 0.054702 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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