我想做类似的事情(在Python中):
How to convert a column or row matrix to a diagonal matrix in Python?
即:
1)将矩阵A的所有元素设置到矩阵B的对角线上(B的所有其他元素应为0)和2)在B上执行某些操作后,我想重新创建矩阵A,所以将元素从B中取出对角线,与第一步中执行的顺序相同,然后将它们放回A中。
答案 0 :(得分:6)
你能不能将你的矩阵解开到另一个的对角线上吗?
In [29]: import numpy as np
In [30]: a = np.array([[1,2],[3,4]])
In [31]: b = np.diag(a.ravel())
In [32]: b
Out[32]:
array([[1, 0, 0, 0],
[0, 2, 0, 0],
[0, 0, 3, 0],
[0, 0, 0, 4]])
然后,回去:
In [33]: b.diagonal().reshape((2,2))
Out[33]:
array([[1, 2],
[3, 4]])