矩阵在
Mathematica 中用列表表示. 它们可以用{ } 符号直接输入、由一个公式创建或者从一个数据文件中导入.
Mathematica 还有各种创建对角矩阵、常数矩阵和其它特殊矩阵类型的命令.
矩阵可以直接用

符号输入:
| Out[125]= |  |
可以使用
MatrixForm 将结果用矩阵符号表示:
Out[126]//MatrixForm= |
| |  |

是输入

的另一种方式. 当

为格式化函数时,这会很方便.
这里用
Table 创建一个

和

值的网格.
Out[129]//MatrixForm= |
| |  |
注意
Mathematica 中的矩阵并不只限于包含数字;它们可以包含任何符号项,例如公式:
Out[131]//MatrixForm= |
| |  |
当您创建一个矩阵并用一个赋值式保存时,注意不要使用
MatrixForm 与格式化结合. 使用圆括号:
Out[132]//MatrixForm= |
| |  |
可以在后继计算中使用

:
Out[133]//MatrixForm= |
| |  |
Out[134]//MatrixForm= |
| |  |
则

的输出将与一个矩阵相似,但不会像一个矩阵一样进行计算. 例如,下式将不执行矩阵的乘法运算:
| Out[135]= |  |
您可以使用
FullForm 检查

的值:
Out[11]//FullForm= |
| |  |
这表明

还包括格式化包装
MatrixForm,这层包装使得它不再像矩阵一样工作.
这里创建一个由-10到10之间的实数值组成的 4×5 矩阵:
Out[136]//MatrixForm= |
| |  |
Out[137]//MatrixForm= |
| |  |
Out[138]//MatrixForm= |
| |  |
这里创建一个4×4 Hilbert 矩阵;各项均为

的形式:
Out[139]//MatrixForm= |
| |  |
Out[142]//MatrixForm= |
| |  |
当
Mathematica 函数返回矩阵时,它们往往采用一种称作压缩数组的优化存储格式.
您可以将
Mathematica 中的许多常见运算应用于列表,然后得到另一个列表,并将函数映射在各个元素上. 这同样适用于矩阵,它们是列表的列表.
Out[144]//MatrixForm= |
| |  |
Out[145]//MatrixForm= |
| |  |
Sqrt 的这种行为被称作可列表性,它使代码非常高效并具有可读性.
| Out[146]= |  |
您可以使函数具有可列表性;现在它将映射在每个元素上:
Out[148]//MatrixForm= |
| |  |
另一种创建矩阵的重要方式是导入一个数据文件. 这可以通过列表格式如
Table (.dat)、
CSV (.csv)和
TSV (.tsv)实现. 矩阵也可以从一个
Excel 电子表格(.xls)中读取.
这里,用
ImportString 将一个 CSV 格式的字符串导入矩阵. 从一个文件中导入通过
Import 完成:
| Out[149]= |  |
Mathematica 还支持其它许多格式,包括诸如
HarwellBoeing、
MAT、
HDF、
NASACDF 和
FITS 等科学和医学数据格式.
您创建矩阵的方式可能会对程序的效率具有重要的影响. 为了获得最佳的效率,要避免追加矩阵,避免不必要的创建操作,并尽可能使用可列表操作.
| Out[151]= |  |
在一次计算中创建矩阵要快得多. 只要看到一个
For 循环,试着将它用其它构件代替,如
Table:
| Out[152]= |  |
下面的例子创建了一个

零矩阵,然后通过一个循环进行填充. 这里零矩阵的创建是完全不必要的:
| Out[153]= |  |
为矩阵各行一次性地创建数据,再使用一个可列表运算要快得多:
| Out[154]= |  |
如果矩阵很大且具有很多相同的元素(例如零),那么您可以考虑由
SparseArray 形成的稀疏矩阵.