news 2026/10/3 13:37:20

矩阵前乘矩阵后乘——几何变换

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
矩阵前乘矩阵后乘——几何变换

在2000年前,矩阵乘法的规范是行向量表示(矩阵后乘),其实这种表示更符合信号变换的基向量展开公式,但是2000年后,规范就改为了列向量表示(矩阵前乘),在两年前MATLAB将最后没改部分也改成了列向量表示。虽然我不知道为什么改成列向量表示,我也无所谓规范是矩阵后乘还是矩阵前乘,但是规范才能让我们更方便交流,就像洗衣机的高度都是一样的,方便装修的道理是一样的。然而,python中矩阵向量乘积用的是行向量表示方式,又带回了2000年前,那些数学基础不好的,又表达不清楚的,就会让这个世界很混乱。

这是我很佩服的一人,对这段历史的说明。




仿射变换矩阵

这些矩阵定义了仿射变换和投影变换,包括平移、旋转、刚体变换和相似变换。在接下来的讨论中,我将重点关注仿射变换,但相同的概念也适用于投影变换。

在二维空间中,仿射变换矩阵是一个3×33 \times 33×3矩阵,它通过矩阵乘法将二维点(u,v)(u, v)(u,v)进行映射,如下所示:

[xy1]=[abcdef001]×[uv1]=A×[uv1] \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} = \begin{bmatrix} a & b & c \\ d & e & f \\ 0 & 0 & 1 \end{bmatrix} \times \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = A \times \begin{bmatrix} u \\ v \\ 1 \end{bmatrix}​xy1​​=​ad0​be0​cf1​​×​uv1​​=A×​uv1​​

当仿射变换如上所示书写时,AAA的第三行总是[001][0 \quad 0 \quad 1][001]。因为矩阵出现在它所乘的向量之前,称之为前乘约定(premultiply convention)。

还有另一种书写此运算的方式。可以对一切进行转置,像这样:

[xy1]=[uv1]×[ad0be0cf1]=[uv1]×B \begin{bmatrix} x & y & 1 \end{bmatrix} = \begin{bmatrix} u & v & 1 \end{bmatrix} \times \begin{bmatrix} a & d & 0 \\ b & e & 0 \\ c & f & 1 \end{bmatrix} = \begin{bmatrix} u & v & 1 \end{bmatrix} \times B[x​y​1​]=[u​v​1​]×​abc​def​001​​=[u​v​1​]×B

在这种形式中,矩阵出现在向量之后,因此我称之为后乘约定(postmultiply convention)。请注意,AAA和BBB通过矩阵转置相关联:A=B⊤A = B^{\top}A=B⊤,且B=A⊤B = A^{\top}B=A⊤。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/3 13:36:40

Linux wall 命令详解:向所有终端广播系统消息的运维实战指南

文档教程 【免费下载链接】linux-command Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux 项目地址: https://gitcode.com/GitHub_Trending/linux/linux-command 点击查看 免费下载 wall(write all&…

作者头像 李华
网站建设 2026/10/3 13:36:36

CPU 亲和性与中断优化实战指南:Windows 低延迟的 4 步落地方法

CPU 亲和性与中断优化实战指南:Windows 低延迟的 4 步落地方法 【免费下载链接】Atlas 🚀 An open and lightweight modification to Windows, designed to optimize performance, privacy and usability. 项目地址: https://gitcode.com/GitHub_Trend…

作者头像 李华