我正在寻找以下形式的矩阵运算:B = M*A*N
哪里A
是一些一般的方阵,M
并且N
是我想要找到的矩阵。使得 的列B
是 的对角线A
。第一列是主对角线,第二列是从主对角线偏移 1 的对角线,依此类推。
例如在 MATLAB 语法中:
A = [1, 2, 3
4, 5, 6
7, 8, 9]
和
B = [1, 2, 3
5, 6, 4
9, 7, 8]
编辑:似乎不存在纯线性代数解决方案。所以我会更准确地说明我想要做什么:
v
对于一些大小的向量1 x m
。然后定义C = repmat(v,m,1)
. 我的矩阵是A = C-C.';
. 因此,A
本质上是所有值的差异,v
但我只对值之间的差异感兴趣。这些是 的对角线A
;但是m
太大了,这样的m x m
矩阵的构造会导致内存不足的问题。我正在寻找一种以尽可能高效的方式提取这些对角线的方法(在 MATLAB 中)。
谢谢!