稀疏数组:线性代数
许多大型的线性代数的应用涉及到含有很多元素的矩阵,但是这些元素中很少是非零的. 在 Mathematica 中可以使用 SparseArray 对象有效地表示这些稀疏矩阵,这在 "稀疏数组:操作列表" 中讨论. SparseArray 对象是通过用规则列表指定非零数值出现的地方来工作的.
| SparseArray[list] | 一个普通列表的 SparseArray 形式 |
| SparseArray[{{i1,j1}->v1,{i2,j2}->v2,...},{m,n}] |
| 一个 m×n 稀疏数组,其元素 具有数值  |
| SparseArray[{{i1,j1},{i2,j2},...}->{v1,v2,...},{m,n}] |
| 同样的稀疏数组 |
| Normal[array] | 相应于一个 SparseArray 的普通列表 |
指定稀疏数组.
就像在 "稀疏数组:操作列表" 中讨论的,可以使用模式来指定稀疏矩阵中的元素集合. 也可以得到和任意阶的张量相应的稀疏数组.
这里产生一个 50×50 稀疏数值矩阵,有148个非零的元素.
| Out[1]= |  |
| Out[2]= |  |
| Out[3]= |  |
| Out[4]= |  |
| Out[5]= |  |
可以将大多数的标准结构运算直接应用于 SparseArray 对象,就像操作普通列表一样. 当结果稀疏时,它们通常返回 SparseArray 对象.
可以直接应用于 SparseArray 对象的几个结构运算.
这给出

的第一列. 它只有2个非零的元素.
| Out[6]= |  |
这把3与

第一列中的每一个元素相加.
| Out[7]= |  |
| Out[8]= |  |
| Out[9]= |  |
获得稀疏数组的通常方法.
| Out[10]= |  |
| Out[11]= |  |
| Out[12]= |  |
| Out[13]= |  |
| Out[14]= |  |
| Out[15]= |  |
| Out[16]= |  |
| Out[17]= |  |
对于机器精度数值稀疏矩阵,Mathematica 支持标准的文件格式,例如 Matrix Market (.mtx) 和 Harwell-Boeing. 可以用 Import 和 Export 以这些格式导入和导出矩阵.