【问题标题】:Create a Symmetric Matrix from a vector in MATLAB在 MATLAB 中从向量创建对称矩阵
【发布时间】:2015-12-03 19:31:36
【问题描述】:

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

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

【问题讨论】:

  • 我们这里不支持 LaTeX。请使用编码语法。另外,我看不到如何从A 转到M。施工的一般规则是什么?如果将其扩展到向量中的 4 个元素之外会发生什么?
  • 请看修改后的问题
  • 这样更好。谢谢。我正在重新打开,因为这不是使用 toeplitz 的重复。
  • A31、A13 元素在哪里?还是 A24、A42?

标签: matlab matrix vector symmetric


【解决方案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)

【讨论】:

    猜你喜欢
    • 2014-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多