news 2026/7/17 17:24:44

矩阵的秩 是什么

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
矩阵的秩 是什么
  • 线性代数定义:向量空间(列空间/行空间)的维数。

  • 高斯消元法:主元(pivot)的数量。

  • 行列式视角:满秩 <=> 行列式 != 0(对于方阵)。

  • 数值视角:线性无关的行/列的最大数量。

  • 几何视角:变换后的空间的维度。

  • SLAM上下文:为什么rank() == 2意味着共面点?因为 (3x3) 矩阵points3 * points3.transpose()表示点的散布。如果点处于二维平面,其散布矩阵的秩为 2(一个维度退化)。

协方差矩阵的秩=2,就是分布在平面上。

1. 严谨的数学定义(抓本质)

矩阵的秩,指的是矩阵中线性无关的行(或列)向量的最大数目

  • 如果是 3×3的矩阵,秩最大是 3(称为满秩)。

  • 如果秩是 2,说明虽然它有3行,但其中一行可以用另外两行线性组合出来,是“冗余”信息。

2. 几何直觉(结合SLAM理解)

把矩阵看作一个“空间变换器”:

  • 秩 = 3:它能将一个三维立方体变换成一个三维体(体积不为零)。

  • 秩 = 2:它将三维空间“拍扁”成一个平面(体积为零)。

  • 秩 = 1:它将三维空间压成一条线


3. 代码实锤:为什么用rankTest.rank() == 2来判断平面?

这正是你代码中最关键的一步:

cpp

Eigen::Matrix3d planarTest = points3 * points3.transpose(); // (3x3) // 如果 rankTest.rank() == 2,说明是平面场景
  • points3是所有 3D 点组成的 3×N 矩阵。

  • planarTest是这个点集的协方差矩阵(未中心化)

  • 如果所有点共面,那么这些点在三维空间中只分布在二维平面上,没有撑起一个“立体”。因此,这个矩阵的秩必定是2(零空间对应平面法向量方向)。

  • 如果点是随机分布在三维空间(非共面),这个矩阵的秩就是3


4. 秩在求解线性方程中的“致命”意义

秩直接决定了方程 Ax=b 有没有解、有多少解:

  • 满秩(秩 = 未知数个数):解唯一(或者最小二乘解稳定)。

  • 秩亏(秩 < 未知数个数):方程欠定,解不唯一,存在零空间(Nullspace)

  • 在MLPnP中的体现:正因为平面场景下矩阵秩亏为 2,旋转矩阵第三列无法通过线性方程直接解出(自由度消失),所以代码才专门if (planar)将未知数colsA从 12 降为 9,并利用叉积tmp.col(0) = tmp.col(1).cross(tmp.col(2))强行补全旋转矩阵。


💎 一句话总结

矩阵的秩 = 矩阵撑起的空间维度。

  • 秩大 = 信息丰富,约束强。

  • 秩小 = 信息冗余,数据退化(比如共面),此时必须像代码里那样降维处理,否则数学上算不出稳定的解。

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

CANN/asc-devkit:copysignf函数文档

copysignf 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言&#xff0c;原生支持C和C标准规范&#xff0c;主要由类库和语言扩展层构成&#xff0c;提供多层级API&#xff0c;满足多维场景算子开发诉求。 项目地址: https://gitcode.com/…

作者头像 李华
网站建设 2026/7/17 17:23:17

Mac用户必备:Parallels Desktop虚拟机配置与优化指南

1. 为什么Mac用户需要Windows虚拟机&#xff1f;作为一名长期使用MacOS的开发者&#xff0c;我最初也认为苹果系统能搞定一切。直到工作中频繁遇到这些场景&#xff1a;客户发来的Visio流程图文件打不开银行网银插件仅支持IE内核某些工业设计软件只有Windows版本游戏平台上心仪…

作者头像 李华
网站建设 2026/7/17 17:22:08

3步轻松制作专业数字人视频:SadTalker实用指南

3步轻松制作专业数字人视频&#xff1a;SadTalker实用指南 【免费下载链接】SadTalker [CVPR 2023] SadTalker&#xff1a;Learning Realistic 3D Motion Coefficients for Stylized Audio-Driven Single Image Talking Face Animation 项目地址: https://gitcode.com/GitHub…

作者头像 李华
网站建设 2026/7/17 17:20:00

Python Selenium自动化挂机脚本:Edge浏览器防熄屏与反检测实战

1. 项目概述与核心需求解析最近在几个技术社群里&#xff0c;看到不少朋友在讨论一个挺实际的需求&#xff1a;如何让电脑在无人值守的情况下&#xff0c;自动完成一些网页端的“挂机”任务&#xff0c;比如在线学习平台需要累积学习时长&#xff0c;或者某些需要保持在线状态的…

作者头像 李华
网站建设 2026/7/17 17:18:51

打破平台壁垒:5分钟打造你的专属跨平台直播聚合中心

打破平台壁垒&#xff1a;5分钟打造你的专属跨平台直播聚合中心 【免费下载链接】dart_simple_live 简简单单的看直播 项目地址: https://gitcode.com/GitHub_Trending/da/dart_simple_live 还在为切换不同直播应用而烦恼吗&#xff1f;想在一处界面中同时观看虎牙、斗鱼…

作者头像 李华