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

如何将矩阵总和添加至其所有对角元素?附代码与示例

给矩阵对角元素添加矩阵总和的实现方案

核心需求

将矩阵的总和值,分别加到矩阵的每一个对角元素上,非对角元素保持不变。

实现方法

方法1:直接修改原矩阵(高效直观)

利用np.diag_indices获取对角元素的索引,直接对这些位置的元素进行赋值操作:

import numpy as np

# 定义原始矩阵
A = np.array([[0, 1, 2],
              [3, 4, 5],
              [6, 7, 8]])

# 计算矩阵总和
A_sum = A.sum()
# 获取对角元素的索引(适用于n×n方阵)
diag_i, diag_j = np.diag_indices(A.shape[0])
# 给所有对角元素加上总和
A[diag_i, diag_j] += A_sum

# 输出结果
print(A)

执行后输出:

[[36  1  2]
 [ 3 40  5]
 [ 6  7 44]]

方法2:生成新矩阵(不修改原数据)

通过构造一个仅对角线为矩阵总和的辅助矩阵,与原矩阵相加得到结果:

import numpy as np

A = np.array([[0, 1, 2],
              [3, 4, 5],
              [6, 7, 8]])
A_sum = A.sum()

# 构造对角线为A_sum的矩阵,与原矩阵相加
A_new = A + np.diag([A_sum] * A.shape[0])

print(A_new)

该方法不会改变原矩阵A,适合需要保留原始数据的场景。

内容的提问来源于stack exchange,提问作者ApplePie123

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 06:14:56