Mathematica 9 is now available
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.
Mathematica >
How to | 将函数映射于列表
Mathematica 包含许多功能强大的操作,用于使用列表. 常常需要将函数映射到每个列表的每个单个元素. 对于具有可列表性的函数,在默认情况下就能做到,而对于具有不可列表性的函数,您可以使用 Map 来执行此操作.
首先设置一个由1至5的整数组成的列表:
In[293]:=
Click for copyable input
Out[293]=
您可以使用 Map 将函数映射到列表的每个元素;下面的例子使用的是一个未定义的函数
In[294]:=
Click for copyable input
Out[294]=
可以使用 作为 Map 的简写形式(这个命令与上例中的相同):
In[295]:=
Click for copyable input
Out[295]=
大多数数学函数具有 Listable 属性,表示它们将自动映射于列表:
In[296]:=
Click for copyable input
Out[296]=
In[297]:=
Click for copyable input
Out[297]=
如果函数非 Listable,您可以使用 Map. 设置由5个2×2矩阵组成的列表:
In[298]:=
Click for copyable input
Out[298]=
使用 MapMatrixForm 映射于列表,以数学符号形式查看每一个矩阵:
In[299]:=
Click for copyable input
Out[299]=
现在用 Map 计算列表中每个矩阵的特征值:
In[300]:=
Click for copyable input
Out[300]=
Map 不仅可以操作列表. 它也可以用于任何表达式:
In[301]:=
Click for copyable input
Out[301]=
    
Apply 是另一个函数编程操作. 它用于替换一个表达式的头:
您可以通过两个未定义的函数 来看这是怎样作用的:
In[302]:=
Click for copyable input
Out[302]=
Apply 作为简写形式(这个命令与上例中的相同):
In[303]:=
Click for copyable input
Out[303]=
Mathematica 中公用表达式以 StandardForm 形式显示,而它们的底层 FullForm 说明可以如何使用 Apply
In[304]:=
Click for copyable input
Out[304]=
例如,这里将加和变成乘积:
In[305]:=
Click for copyable input
Out[305]=
    
当您想要将列表中的元素转换为函数的参数时,Apply 很有用.
创建一个由5个有序对 组成的列表:
In[306]:=
Click for copyable input
Out[306]=
Mod 求有序对中第一个数除以第二个数得到的余数:
In[307]:=
Click for copyable input
Out[307]=
Mod 应用于全部有序对,需要在列表的第一层作用(由 指定):
In[308]:=
Click for copyable input
Out[308]=
可以用 作为简写符号应用于第一层:
In[309]:=
Click for copyable input
Out[309]=
这是完成同样任务的另一种方法,方法是利用带有 Function 的纯函数:
In[310]:=
Click for copyable input
Out[310]=
这里使用 Function 的简写形式:
In[311]:=
Click for copyable input
Out[311]=
Ask a question about this page  |  Suggest an improvement  |  Leave a message for the team
格式:   HTML  |  CDF