添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
成熟的春卷  ·  PHP_追风BOY·  4 月前    · 
没有腹肌的墨镜  ·  Splane tutorial: ...·  4 月前    · 
大力的拐杖  ·  getting error on ...·  6 月前    · 
检测和搜索列表元素 嵌套列表的重排
产生对象列表
" 一些数学函数 " 中的数学函数都可以使用到列表:
" 产生对象的列表 " 节中我们已经讨论过列表,在那里是作为一种把多个数放在一起的方式. 在这一节中,将看到使用列表的许多不同方式. 用户将发现列表是 Wolfram 语言中最灵活和最强有力的对象之一. 将看到 Wolfram 语言列表是数学和计算机科学中的一些标准概念的一般化.
Table 使用像函数 Sum Product 一样的循环表示法. 该表示法在 " 求和与求积 " 中讨论过:
可以在从 Table 中得到的列表上进行其他运算:
TableForm 把列表显示为 表格 的形式. 注意, TableForm 中有两个大写字母:
{ 1 , 2 , 3 , 4 } 给出 4 个伪随机数的表. Table 对列表中的每个元素重复计算 RandomSample [ { 1 , 2 , 3 , 4 } , 2 ] 4次,得到了不同的伪随机数:
对列表 { 1 , 4 , 9 , 16 } 中的每个 i 值计算
可以使用 Table 生成具有任意维度的数组.
Table [ f , { i max } ]
给出 f i max 个值的列表
Table [ f , { i , i max } ]
给出 f i 1 i max 的列表
Table [ f , { i , i min , i max } ]
给出 i i min i max 的列表
Table [ f , { i , i min , i max , di } ]
使用 di 为步长
Table [ f , { i , i min , i max } , { j , j min , j max } , ]
生成多维表
Table [ f , { i , { i 1 , i 2 , } ]
给出当 i 连续取值 i 1 , i 2 , f 的值的列表
TableForm [ list ]
把列表显示为表格形式
可以使用 " 处理列表元素 " 节讨论的方法提取表的元素.
t [ [ i ] ]
or
Part [ t , i ]
给出 t i 个子列表(也作为 t i 输入)
t [ [ i ;; j ] ]
or
Part [ t , i ;; j ]
给出从 i j 的部分列表
t [ [ { i 1 , i 2 , } ] ]
or
Part [ t , { i 1 , i 2 , } ]
给出 t i 1 i 2 部分构成的列表
t [ [ i , j , ] ]
or
Part [ t , i , j , ]
给出 t 的相应于 t [ [ i ] ] [ [ j ] ] 的部分元素列表
" 处理列表元素 " 节中提到的那样,用户可以把 Wolfram 语言列表看作 数组 ,那么列表的列表则可看作二维数组. 当把列表显示为表格形式时,每个元素的两个指标如同 坐标一样.
{ a , b , c }
一个列表
Part [ list , i ]
or
list [ [ i ] ]
列表 list 的第 i 个元素(第一个元素为 list [ [ 1 ] ]
Part [ list , { i , j , } ]
or
list [ [ { i , j , } ] ]
列表 list 的第 i ,第 j 个元素组成的列表
Part [ list , i ;; j ]
列表 list 的第 i 到第 j 个元素组成的列表
Part [ v , i ]
or
v [ [ i ] ]
取出列表的第 i 个元素
Part [ v , i ] = value
or
v [ [ i ] ] = value
重新给列表的第 i 个元素赋值
Table [ f , { i , n } ]
通过计算 i = 1 , 2 , , n f 的值,构造一个 n 维向量
Array [ a , n ]
构造形如 { a [ 1 ] , a [ 2 ] , } n 维向量
Range [ n ]
建立列表 { 1 , 2 , 3 , , n }
Range [ n 1 , n 2 ]
建立列表 { n 1 , n 1 + 1 , , n 2 }
Range [ n 1 , n 2 , dn ]
建立列表 { n 1 , n 1 + dn , , n 2 }
list [ [ i ] ]
or
Part [ list , i ]
取出向量 list 的第 i 个元素
Length [ list ]
给出 list 的元素个数
c v
数乘向量
a . b
向量的点积
Cross [ a , b ]
向量的叉积(也输入为 a × b
Norm [ v ]
向量的欧式范数(norm)
Table [ f , { i , m } , { j , n } ]
通过计算 i 1 m j 1 n f 的值,构造一个 m × n 矩阵
Array [ a , { m , n } ]
构造一个 m × n 矩阵,其第 i , j 个元素为 a [ i , j ]
IdentityMatrix [ n ]
生成一个 n × n 单位矩阵
DiagonalMatrix [ list ]
生成一个对角线上的元素为 list 的对角阵
list [ [ i ] ]
or
Part [ list , i ]
给出矩阵 list 的第 i
list [ [ All , j ] ]
or
Part [ list , All , j ]
给出矩阵 list 的第 j
list [ [ i , j ] ]
or
Part [ list , i , j ]
给出矩阵 list 的第 i , j 个元素
Dimensions [ list ]
给出矩阵 list 的维数
First [ list ]
list 的第一个元素
Last [ list ]
list 的最后一个元素
Part [ list , n ]
or
list [ [ n ] ]
list 的第 n 个元素
Part [ list , - n ]
or
list [ [ - n ] ]
倒数第 n 个元素
Part [ list , m ;; n ]
从第 m 到第 n 个元素
Part [ list , { n 1 , n 2 , } ]
or
list [ [ { n 1 , n 2 , } ] ]
由第 n 1 , n 2 , 个元素组成的列表
t 的最后一个元素:
Take [ list , n ]
list 的前 n 个元素
Take [ list , - n ]
list 的后 n 个元素
Take [ list , { m , n } ]
list 中从 m n 的元素
Rest [ list ]
去掉 list 的第一个元素
Drop [ list , n ]
去掉 list 的前 n 个元素
Most [ list ]
去掉 list 的最后一个元素
Drop [ list , - n ]
去掉 list 的后 n 个元素
Drop [ list , { m , n } ]
去掉 list 的从第 m 到第 n 个间的元素
给出前面定义的列表 t 的前 3 个元素:
"同类列表的操作" 节将介绍如何将本节的所有函数推广到不仅用于列表,而且用于各种 Wolfram 语言表达式.
本节的函数允许用户提取列表中特定位置上的元素. "寻找与模式匹配的表达式" 节将介绍如何使用像 Select Cases 这样的函数提取列表元素. 他们不是根据元素的位置,而是根据元素的特征进行提取.
Position [ list , form ]
form list 中的位置
Count [ list , form ]
form 作为 list 的元素所给出的次数
MemberQ [ list , form ]
检测 form 是否为 list 的元素
FreeQ [ list , form ]
检测 form 是否不在 list
"获得列表的部分元素" 讨论如何根据元素的位置或标号提取列表的元素. Wolfram 系统也有根据元素的值搜索和检测列表元素的函数.
Count 计算 a 出现的次数:
如同 "寻找与模式匹配的表达式" 节讨论,函数 Count Position ,以及 MemberQ FreeQ ,不仅能用于搜索 特定 的列表元素,而且能搜索与特定 模式 相匹配的元素类.
Prepend [ list , element ]
list 的开头添加元素 element
Append [ list , element ]
list 的末尾添加元素 element
Insert [ list , element , i ]
list 的第 i 个位置上插入 element
Insert [ list , element , - i ]
list 的倒数第 i 个位置上插入 element
Riffle [ list , element ]
list 的位置上交错放置 element
Delete [ list , i ]
去掉 list 的第 i 个位置上的元素
ReplacePart [ list , i -> new ]
new 替换 list 的第 i 个位置上的元素
ReplacePart [ list , { i , j } -> new ]
new 替换 list [ [ i , j ] ]
在列表的位置上交错放置 x
函数如 ReplacePart 用明确的列表产生新的列表. 然而,用户有时可能想要在合适的位置修改一个列表,而不明确产生一个新的列表.
m [ [ i , j ] ] = new
替换矩阵的第 ( i , j ) 个元素
m [ [ i ] ] = new
替换第 i
m [ [ All , i ] ] = new
替换第 i
Join [ list 1 , list 2 , ]
把列表连接在一起
Union [ list 1 , list 2 , ]
列表的并(合并列表,删除重复的元素,并整理结果)
Riffle [ list 1 , list 2 ]
交错放置 list 1 list 2 的元素
Join 可以连接任意多个列表:
Union 合并列表,且保持列表中只有不同元素:
Riffle 通过交错放置列表的元素合并列表:
Union [ list 1 , list 2 , ]
给出 list i 中不同元素的列表
Intersection [ list 1 , list 2 , ]
给出 list i 中共有的元素的列表
Complement [ universal , list 1 , ]
给出在 universal 中,但不在 list i 中的元素的列表
Subsets [ list ]
给出 list 中元素的所有子集的列表
DeleteDuplicates [ list ]
list 中删除所有重复元素
Union 给出在任一个列表中出现的元素:
Intersection 给出在所有集合中都出现的元素:
Complement 给出在第 1 个集合出现,而不在其他集合中出现的元素:
DeleteDuplicates 从列表中删除所有重复元素:
Sort [ list ]
把列表 list 元素整理成标准顺序
Union [ list ]
整理元素,删除重复元素
Reverse [ list ]
list 的元素进行反向排序
RotateLeft [ list , n ]
把列表 list 元素向左轮换 n 个位置
RotateRight [ list , n ]
把列表元素向右轮换 n 个位置
整理元素,删除重复的元素:
PadLeft [ list , len , x ]
list 的左边用 x 进行填充,产生一个长度为 len 的列表
PadRight [ list , len , x ]
list 的右边进行填充
Partition [ list , n ]
list 分成 n 个元素一组
Partition [ list , n , d ]
使用偏移 d 进行逐次分组
Split [ list ]
list 按邻接的相同元素进行分组
SplitBy [ list , f ]
当应用 f 时,将 list 分为具有相同值得参数运行
Gather [ list ]
list 的参数收集到相同参数的子列表中
GatherBy [ list , f ]
当应用 f 时,将列表的参数收集到具有相同值的子列表中
Tuples [ list , n ]
生成所有元素是由 list 得来的 n 元组
Tuples [ { list 1 , list 2 , } ]
生成所有第 i 个元素是由 list i 得来的元组
寻找列表中元素的可能元组.
Sort [ list ]
list 中的元素按顺序排列
Ordering [ list ]
Sort [ list ] list 元素的位置
Ordering [ list , n ]
Ordering [ list ] 的前 n 个元素
Ordering [ list , - n ]
Ordering [ list ] 的最后 n 个元素
Permutations [ list ]
list 的所有可能排序
Min [ list ]
list 中的最小元素
Max [ list ]
list 中的最大元素
给出 t 的元素位置,从最小到最大的位置:
Sort [ t ] 产生相同的结果:
Flatten [ list ]
压平 list 的所有层
Flatten [ list , n ]
压平 list 的前 n
Partition [ list , { n 1 , n 2 , } ]
分成大小为 n 1 × n 2 × 的块
Transpose [ list ]
交换列表的前两层
RotateLeft [ list , { n 1 , n 2 , } ]
将层逐次轮换 n i 个位置
PadLeft [ list , { n 1 , n 2 , } ]
把第 i 层填充为长为 n i 的子列表