Latex Tips: 如何输入矩阵(illustrated in Jupyter Notebook)
目录
0. 如何在LaTeX中输入矩阵?
本文介绍在LaTex中创建矩阵的几种不同方法。 一是基于Array Environment的语法,一是基于amsmath package.
注意,本文中的代码是用于Jupyter Notebook的Markdown cell中输入矩阵的。在不同的环境中Latex表现形式可能会有略微的区别。
1. 使用Array Environment
Latex提供了array environment用于输入矩阵。
它只需要列数和与对数对应的对齐(alignment)控制选项。由于我们是输入矩阵,所以一般来说我们希望看到中央对齐,所以我们可以用对应列数个的c用于指示对齐选项。注意,这里c是指centered,而不是指column. 然后用&来分割行内元素,用\来控制换行。Array Environment只创建矩阵的内容,括号需要用另外的命令进行追加。
1.1 第一个例子
我们先来看一个例子。
例1:一个2x2的矩阵
$$
A_{2\times2} =
\left[ {\begin{array}{cc}
a_{11} & a_{12} \\
a_{21} & a_{22} \\
\end{array} } \right]
$$
显示效果:
如前所述,本文中的代码是在Jupyter Notebook Markdown cell中运行的。这里前后分别用两个美元符号"$$"来界定公式范围。在[Ref]中给出的例子,不是用两个美元符号来界定,而是用'\['和'\]'来界定公式范围。我没有在Jupyter Notebook以外使用过Latex,不知道这个差异是不是由于运行环境所带来的差异。
1.2 命令解释
我们来看看以上代码中的涉及到的几种命令。
(1) "\left[" 和 "\right]"分别表示左右括号。Array Environment不会自动加括号,所以左右括号需要自己显式地追加
(2) "\\begin{arrary}" 和 "\\end{arrary}"构成一对,表示它们之间就是矩阵的内容
(3) \begin{arrary}后面紧跟的{cc}用于控制列对齐,以上矩阵是2列,因此用两个c,这里c指center,表示中央对齐(矩阵嘛,通常都是中央对齐)。注意,不是指矩阵实际上有多少列,而是你实际上显示为多少列。参见下面的例子
(4) 用 &分隔同行中的元素,用'\\'表示换行
(5) A 和 a后面跟的下标表示方式Latex中最基本的用法
(6) '\times'表示乘号'x'
这样我们就完全清楚这个矩阵是如何描绘出来的了。接下来看几个更复杂一些的例子。
1.3 更多的例子
例2:一个3x5的矩阵
$$
A_{3\times5} =
\left[ {\begin{array}{ccccc}
a_{11} & a_{12} & a_{13} & a_{14} & a_{15}\\
a_{21} & a_{22} & a_{23} & a_{24} & a_{25}\\
a_{31} & a_{32} & a_{33} & a_{34} & a_{35}\\
\end{array} } \right]
$$
如上所示,因为有5列,所以用了{ccccc}来标示。显示效果如下:
例3: 一个{m x n}的矩阵
$$
A_{m\times n} =
\left[ {\begin{array}{cccc}
a_{11} & a_{12} & \cdots & a_{1n}\\
a_{21} & a_{22} & \cdots & a_{2n}\\
\vdots & \vdots & \ddots & \vdots\\
a_{m1} & a_{m2} & \cdots & a_{mn}\\
\end{array} } \right]
$$
由于m和n是不确定的值,所以矩阵中要用横的(\cdots)、竖的(\vdots)、斜的(\ddots)省略号来表示。需要注意的是,省略的行和列也只算做是一行或一列,因此本矩阵是表示为4行和4列,因此用{cccc}来表示列对齐控制。显示效果如下:
2. 使用AMSMATH Package
AMSMATH package提供更多的更灵活的输入矩阵定界符(即包围矩阵的大括号)的选项控制。在常规的Latex文档中在使用amsmath package之前需要用\usepackage{amsmath}加载这个包,但是在Jupyter Notebook是缺省加载的,直接使用即可。
AMSMATH package提供的矩阵定界符选项如下所示:
Matrix Type | Keyword | Output |
---|---|---|
Plain | matrix | Only the elements of the matrix |
Parentheses | pmatrix | Elements of the matrix in round brackets |
Brackets | bmatrix | Elements of the matrix in square brackets |
Braces | Bmatrix | Elements of the matrix in curly brackets |
Pipes | vmatrix | Elements of the matrix in vertical lines |
Double Pipes | Vmatrix | Elements of the matrix in double vertical lines |
Small Matrix | smallmatrix | A plain matrix in a smaller size |
如以下例子所示,与Array Enviroment的根本差别在于关键字array替换为matrix了。此外,amsmath package的用法中不需要对齐(alignment)控制选项。
2.1 各种大括号的例子
$$
A_{2\times 3} =
\begin{matrix}
a_{11} & a_{12} & a_{13}\\
a_{21} & a_{22} & a_{23}
\end{matrix}
$$
$$
A_{3\times 2} =
\begin{pmatrix}
a_{11} & a_{12}\\
a_{21} & a_{22}\\
a_{31} & a_{32}
\end{pmatrix}
$$
$$
A_{4\times 3} =
\begin{bmatrix}
a_{11} & a_{12} & a_{13}\\
a_{21} & a_{22} & a_{23}\\
a_{31} & a_{32} & a_{33}\\
a_{41} & a_{42} & a_{43}
\end{bmatrix}
$$
$$
A_{3\times 4} =
\begin{Bmatrix}
a_{11} & a_{12} & a_{13} & a_{14}\\
a_{21} & a_{22} & a_{23} & a_{24}\\
a_{31} & a_{32} & a_{33} & a_{34}
\end{Bmatrix}
$$
$$
A_{3\times 3} =
\begin{vmatrix}
a_{11} & a_{12} & a_{13}\\
a_{21} & a_{22} & a_{23}\\
a_{31} & a_{32} & a_{33}
\end{vmatrix}
$$
$$
A_{3\times 3} =
\begin{Vmatrix}
a_{11} & a_{12} & a_{13}\\
a_{21} & a_{22} & a_{23}\\
a_{31} & a_{32} & a_{33}
\end{Vmatrix}
$$
2.2 以上这些括号还不够用?
如果你觉得amsmath package给你提供的矩阵的大括号的样式还不够用,那也没关系。你可以在无括号的矩阵(如上面第一个例子)的外面另行添加你想要的矩阵定界符,如下例所示:
$$
A_{3\times 3} =
\left\langle
\begin{matrix}
a_{11} & a_{12} & a_{13}\\
a_{21} & a_{22} & a_{23}\\
a_{31} & a_{32} & a_{33}
\end{matrix}
\right\rangle
$$
2.3 Small Size Option
Amsmath package还额外地提供了一种比常规尺寸更小(字体更小编排更紧凑)的矩阵选项,这个在你想要在文字中间嵌入矩阵时很有用。其语法形式是用smallmatrix关键字替换matrix如下我们先创建一个常规大小的矩阵,然后创建一个小一号的矩阵,以方便做对比。但是这个小尺寸矩阵选项不能选择不同的定界符。
$$
A_{3\times 3} =
\begin{bmatrix}
a_{11} & a_{12} & a_{13}\\
a_{21} & a_{22} & a_{23}\\
a_{31} & a_{32} & a_{33}
\end{bmatrix}
$$
$$
A_{3\times 3} =
\left(\begin{smallmatrix}
a_{11} & a_{12} & a_{13}\\
a_{21} & a_{22} & a_{23}\\
a_{31} & a_{32} & a_{33}
\end{smallmatrix}\right)
$$
相关文章
- 数据透视表上线!如何在纯前端实现这个强大的数据分析功能?
- java的格式输入语句是_java输入输出语句是什么「建议收藏」
- LaTeX技巧218:LaTeX如何正确输入引号:双引号“”单引号‘’
- 【说站】python如何输入
- 【说站】python用户输入的方法
- cmd命令如何切换盘符_请输入windows所在盘符
- 让Linux中的SCP远程复制不再需要输入密码
- 「 c语言使用起泡法对输入的10个数字进行排序 」
- 如何在事件AT SELECTION-SCREEN ON VALUE-REQUEST中取得选择画面字段输入值详解编程语言
- 如何进一步限制SELECT-OPTIONS的输入详解编程语言
- 提升效率:利用脚本自动输入Linux(脚本自动输入linux)
- 助力中文操作:如何配置Linux以支持中文输入(让linux支持中文)
- MySQL如何判断输入的数据是否为数字?(mysql判断是否数字)
- Linux命令行入门:如何在Linux操作系统中输入命令?(linux哪里输入命令)
- 如何在MySQL控制台中输入中文(mysql 控制台 中文)
- Oracle无需输入口令体验新的功能(oracle免输入口令)
- 快速学会Redis命令输入技能(如何输入redis命令)
- MySQL的字符集设置问题如何支持输入中文(mysql不能输汉字吗)
- Oracle如何优化IN查询以提高效率(oracle优化in查询)
- 数据在Oracle中如何安全输入数据(oracle中用户输入)
- jQuery.autocomplete支持中文输入(firefox)修正方法
- Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法