Mathpix

手写矩阵识别:行列对齐与括号的校对

更新于

手写矩阵识别最容易错在两处:行列对不上,和括号认错。写的时候让列与列之间的空隙明显大于一个字的宽度、括号画得比所有行都高;识别后切到「LaTeX」模式,数每行的 & 和行尾的换行符,再看括号用的是哪种环境。圆括号、方括号是矩阵,竖线是行列式,括号认错,意思就变了。

写之前:让识别看得出行和列

识别拿到的是一整块笔迹,它靠空隙判断哪些字属于同一个元素、哪些属于下一列。所以手写矩阵的书写规范,主要是控制空隙:

  • 列距大于字宽。 两个元素之间至少空出一个字的宽度,比如 3 和 −2 之间别挨着写,否则容易被读成一个元素 3−2。
  • 负号贴紧数字。 −1 的负号紧挨着 1 写;负号离得远,可能被当成单独一格,这一行就多出一列。
  • 行距均匀,每行对齐。 同一列的元素上下对齐,别写成斜的;行距比字高略大就够。
  • 括号画高。 左右括号要从第一行上方画到最后一行下方,括住全部元素。行列式的两条竖线要直,别画成弯的,不然和圆括号分不清。

三阶以内的矩阵,在「手写识别」画布上写得下;元素多、带分数的矩阵,写在纸上拍照更从容。

两个入口:画布手写或拍照上传

画布手写。 点「识别」→「手写识别」,在「手写公式识别」弹窗的画布上用鼠标、触屏或手写笔写,写完点「识别并插入」;写乱了点「清空」重写。

纸上写好拍照。 照片存到电脑上,打开「识别」→「图片识别」,拖进弹窗后点「开始识别」。格式与大小以上传区下方提示为准。两种识别都要登录并开通本站会员。

识别弹窗里的矩阵识别样例,结果带行列分隔

弹窗上传区下方的「识别样例」里有一组矩阵,是线上识别服务的原样输出:原图是排版好的印刷体三阶矩阵,结果是一个 pmatrix 环境,元素之间用 & 分隔,行与行之间用两个反斜杠断开。手写矩阵识别出来一般也是这个结构,下面的校对就按它来。

校对行列:数 & 和换行

以作业里的一个三阶矩阵为例,校对后应当得到下面这段源码:

A=\begin{bmatrix}2&-1&0\\1&3&-2\\0&4&1\end{bmatrix}

三阶矩阵 A 用方括号排出的效果

在 LaTeX 模式里按三步核对:

  1. 数行。 三阶矩阵有 3 行,行与行之间各一个换行符,一共 2 个。
  2. 数列。 每一行有 3 个元素、2 个 &。哪一行的 & 多了或少了,那一行就错位了。
  3. 看负号。 逐个核对 −1、−2 的负号还在不在、有没有跑到别的元素前面。

手写三阶矩阵示意与校对后的源码

上图左边是按上面要点写的手写原稿示意,右边是校对后的源码。手写的负号最容易出问题:写得短会被漏掉,写得离数字远会多出一列。

校对括号:矩阵还是行列式

三种括号对应三个环境:圆括号 pmatrix、方括号 bmatrix、竖线 vmatrix。前两种都表示矩阵,只是写法习惯不同;竖线表示行列式,是一个数。同样九个元素写成行列式:

\begin{vmatrix}2&-1&0\\1&3&-2\\0&4&1\end{vmatrix}=23

同样九个元素写成行列式,值为 23

按第一行展开验算:2×(3×1−(−2)×4) − (−1)×(1×1−(−2)×0) + 0 = 2×11 + 1 = 23。手写的竖线画弯了被认成圆括号,结果就从「值为 23 的行列式」变成了「一个矩阵」,后面的等号就不成立了。改的时候把 begin 和 end 两处的环境名一起换掉:只改一处,两端的环境名对不上,这条公式就排不出来。

矩阵源码的更多校对细节见LaTeX矩阵校对;手写里其他容易混的符号,看手写数学识别。

把作业里的一个三阶矩阵在「手写识别」画布上写一遍,列距拉开、括号画高,识别后在 LaTeX 模式里数一遍 & 和换行符。

延伸阅读

常见问题

矩阵元素识别错位怎么办?
先切到 LaTeX 模式数源码:每一行的 & 个数应该等于列数减一,行与行之间各有一个换行符。错位多半是某一行少了一个 &,或者负号被拆成了单独一格。对照原稿逐行补齐即可;如果好几行都乱了,说明原稿列距太窄,把列与列之间的空隙拉开重写一遍再识别,比逐格修改更快。