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

通过替换成对元素为最大值实现矩阵对称化的方法咨询

矩阵对称化实现方案

实现逻辑

只需要遍历矩阵的上三角区域(i < j的位置),对每一对X[i][j]和X[j][i]取最大值,同时赋值给两个位置即可,既避免了重复处理,也完全匹配你的替换规则。

原生Python实现(无第三方依赖)

def symmetricize_matrix(matrix):
    n = len(matrix)
    # 校验输入是否为方阵
    for row in matrix:
        if len(row) != n:
            raise ValueError("输入必须为方阵")
    # 仅遍历上三角区域避免重复计算
    for i in range(n):
        for j in range(i + 1, n):
            max_val = max(matrix[i][j], matrix[j][i])
            matrix[i][j] = max_val
            matrix[j][i] = max_val
    return matrix

# 测试用例
Input_array = [[1, 5, 3],
               [1, 10, 2],
               [0, 9, 16]]
Output_array = symmetricize_matrix(Input_array)
for row in Output_array:
    print(row)

输出结果:

[1, 5, 3]
[5, 10, 9]
[3, 9, 16]

NumPy实现(简洁高效)

如果你可以使用NumPy,直接调用元素级最大值方法即可,完全不会用到你提到的矩阵乘法对称化方式:

import numpy as np

input_arr = np.array([[1, 5, 3],
                      [1, 10, 2],
                      [0, 9, 16]])
# 取原矩阵和转置矩阵的元素级最大值,完全符合替换规则
output_arr = np.maximum(input_arr, input_arr.T)
print(output_arr)

输出结果和预期完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 04:03:02