【问题标题】:how to insert a matrix within another matrix in matlabmatlab如何在另一个矩阵中插入一个矩阵
【发布时间】:2019-01-21 17:41:42
【问题描述】:

我们有一个数据集 X n*m 矩阵,我想创建一个像这样的矩阵 W=[0 X;X' 0] 我应该如何在 Matlab 中做到这一点?

   A=[1 2;3 4];
   B=[0 A;A' 0];

那段代码有什么问题?

【问题讨论】:

  • A 是 2x2,而 0 只有 1x1,所以尺寸不会相加。如果这是您的目标,B=[[0;0] A;A' [0;0]]; 将创建一个 4x3。 B=[zeros(2) A; A' zeros(2)] 如果您想要 4x4,但在每种情况下您都必须添加足够的 0 以匹配尺寸。

标签: matlab matrix linear-algebra


【解决方案1】:

使用kron的可能解决方案:

A = [1 2; 3 4]

result = kron([0 1;0 0], A) + kron([0 0;1 0], A');

result =

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

【讨论】:

    【解决方案2】:

    您只需要使用zeros 来确保尺寸一致

    A = [1 2; 3 4];
    z = zeros( size( A ) );
    B = [ z, A; A', z ];
    

    【讨论】:

      【解决方案3】:

      因为0 的大小不是AA' 在行和列中的大小。 你可以创建一个你想要的大小的矩阵:

      B = zeros(2*size(A));
      

      并替换你想要的值:

      B(1:2, 3:4) = A;
      B(3:4, 1:2) = A.';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-11
        • 1970-01-01
        • 1970-01-01
        • 2015-12-28
        • 2020-05-19
        • 2015-06-16
        • 2022-11-21
        相关资源
        最近更新 更多