在 MATLAB 中从向量创建对称矩阵

Create a Symmetric Matrix from a vector in MATLAB

如何在 MATLAB 中将向量 A 转换为对称矩阵 M

使得M为对称矩阵(即A21=A12)且所有对角线项都相等(即A11=A22=A33=A44)。

使用hankel帮助您创建对称矩阵,然后当您完成后,将此中间结果的对角线项设置为A中向量的第一个元素:

M = hankel(A,A(end:-1:1));
M(eye(numel(A))==1) = A(1);

示例

>> A = [1;2;3;4]

A =

     1
     2
     3
     4

>> M = hankel(A,A(end:-1:1));
>> M(eye(numel(A))==1) = A(1)

M =

     1     2     3     4
     2     1     4     3
     3     4     1     2
     4     3     2     1

如您所见,M(i,j) = M(j,i) 除了对角线,每个元素都等于 A(1)