You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Numpy中实现类似Matlab的QR分解(维度匹配)

在NumPy中实现类似Matlab的QR分解方法

默认情况下,NumPy的np.linalg.qr()函数返回精简版QR分解结果:$Q\in \mathbb{R}^{mxn}$、$R\in \mathbb{R}^{nxn}$;而Matlab默认返回的是完整版分解:$Q\in \mathbb{R}^{mxm}$、$R\in \mathbb{R}^{mxn}$。

你只需要在调用np.linalg.qr()时指定mode='complete'参数,就能得到和Matlab一致的完整版QR分解结果:

import numpy as np

# 示例:创建一个5×3的随机矩阵
A = np.random.rand(5, 3)
# 执行完整版QR分解
Q, R = np.linalg.qr(A, mode='complete')

# 验证维度
print(Q.shape)  # 输出 (5, 5),对应m×m的正交矩阵
print(R.shape)  # 输出 (5, 3),对应m×n的上三角矩阵(下方2行全为0)

补充说明:

  • NumPy的qr函数默认mode='reduced',生成精简版分解;
  • mode='complete'会生成包含所有m个正交基的完整正交矩阵Q,对应的R矩阵是m×n的上三角结构,下方的m-n行元素全为0,完全匹配Matlab默认的QR分解行为。

内容的提问来源于stack exchange,提问作者Julian Cederlöf Alamos Guerra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 16:43:17