【发布时间】:2021-01-11 22:49:23
【问题描述】:
我有一个对称矩阵a,它的对角线元素可以不同。
>>> import numpy as np
>>> a = np.array([[3, 7, 6], [7, 2, 5], [6, 5, 1]])
>>> a
array([[3, 7, 6],
[7, 2, 5],
[6, 5, 1]])
我想对这个矩阵进行归一化,使所有对角线元素都为 0,如下所示:
array([[0, x1, x2],
[x1, 0, x3],
[x2, x3, 0]])
我该怎么做(如果可能,在 Python 中)? 任何帮助将不胜感激,谢谢。
【问题讨论】:
-
感谢您的回答,但我应该指定更多。我的目标不是填充对角线。我想根据对角线对所有矩阵元素进行归一化,例如:
A = np.multiply(a, X),a=输入矩阵,A=输出矩阵,对角线值 = 0(注意,我使用的矩阵大小为 20*20) -
所以给定了 a 和 A,你想找到一个矩阵 X 使得 A = np.multiply(a, X)? (顺便问一下,你的意思是 np.multiply 还是 np.dot)?
-
抱歉,
np.dot(a, X)和X未知。我们只知道输入矩阵a和输出矩阵A的对角线为零。 -
我更新了最初的答案;那是你需要的吗?您的问题是否还有其他假设/细节需要考虑?
标签: python matrix normalization diagonal symmetric