- 积分
- 3
- 注册时间
- 2007-5-27
- 仿真币
-
- 最后登录
- 1970-1-1
|
本帖最后由 eigen 于 2011-8-23 15:52 编辑
Mathematica中的Map运算非常强大。可以很方便地处理批量数据甚至批量函数。我总结了一下相关的内
容,供大家参考。
例如:
处理批量数据:
结果是:
{f(a),f(b),f(c)}
更强大的是处理批量函数映射批量数据:
- MapThread[#1@#2 &, {{f, g, h}, {x, y, z}}]
复制代码
或者用广义内积:
- Inner[#1@#2 &, {f, g, h}, {x, y, z}, List]
复制代码
结果是:
{f(x),g(y),h(z)}
还有外积运算:
- 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
查看全部评分
-
|