文章

Mathematica中一些有用的函数

作为个人使用的技巧存档

Mathematica中一些有用的函数

函数映射

基础

  1. @即前缀运算符: f@x等价于f[x].
  2. Map[f,expr]f/@ expr,将expr中每个元素用f作用.
    • 特别的,f/@ {a,b,c}就是{f[a], f[b], f[c]}.
    • 对于单层情况,即f/@ g[a,b,c]会变成g[f[a],f[b],f[c]]
    • Map[f,expr,level]f作用到exprlevel层.
  3. Apply[f,expr]f@@ expr,将expr的头部用f替换
    • 对于单层,f@@ g[a,b,c]f[a,b,c].因此gListf是多元函数时,这相当于对列表计算.
  4. MapApply[f,expr]f@@@ expr,将expr的第1层表头替换为f.
    • 因此对单层不起作用: f@@@ {a,b,c}仍为{a,b,c}.
    • 对于高层,如二层: f@@@ {{a,b},{c,d}}{f[a,b],f[c,d]}.
    • 换言之,即对”列表”中每个子列表元素作用.

技巧

  1. Through提供如下方法:
1
Through[p[f,g,...][a,b,...]]

p[f,g]中的每个元素作用到后面的[a,b]上,变成

1
p[f[a,b,...],g[a,b,...],...]

若取pList,则上述可变为

1
2
Through@ {f,g,h}[a,b,c]
{f[a,b,c], g[a,b,c], h[a,b,c]}
本文由作者按照 CC BY 4.0 进行授权