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

时间:2015-12-03 19:31:37

标签: matlab matrix vector symmetric

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

enter image description here

enter image description here

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

1 个答案:

答案 0 :(得分:1)

使用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)