【问题标题】:How to combine two matrices如何组合两个矩阵
【发布时间】:2013-12-31 18:26:59
【问题描述】:

我有两个矩阵-

A=[1;0.5;0.67;0.72;0.88;0.9]; %// which is 6 X 1, matrix

B=[0.951  0.736  0.437  0.176   0.036;   %// which is 5 X 5, matrix
     0    0.077  0.069  0.037   0.009;
     0    0      0.439  0.531   0.365; 
     0    0          0  0.154   0.210;
     0    0          0      0   0.310]

我想将这两个矩阵结合起来制作 [6 x 6] 矩阵,如下所示-

C= [1  0.951  0.736  0.437  0.176   0.036;   %//which is 6 X 6, matrix
    0   0.5   0.077  0.069  0.037   0.009;
    0     0   0.67   0.439  0.531   0.365; 
    0     0     0    0.72   0.154   0.210;
    0     0     0       0   0.88    0.310;
    0     0     0       0      0    0.9  ]

为此,我已将B 初始化为B(6,6)=0,但我无法将这两者结合起来。

Matlab 专家,需要您的宝贵建议和帮助。

【问题讨论】:

  • 已经取代新值的值会发生什么重要的事情吗?还是B 总是上三角形?

标签: matlab matrix


【解决方案1】:

这是我能想到的最简单的方法:

C = zeros(6,6);
C(1:end-1,2:end) = B;
C(eye(6)>0) = A

【讨论】:

    【解决方案2】:

    一种解决方案可能是:

    B(end+1,end+1) = 0;
    C = diag(A) + circshift(B,[0 1]);
    

    返回:

    C =
    
        1.0000    0.9510    0.7360    0.4370    0.1760    0.0360
             0    0.5000    0.0770    0.0690    0.0370    0.0090
             0         0    0.6700    0.4390    0.5310    0.3650
             0         0         0    0.7200    0.1540    0.2100
             0         0         0         0    0.8800    0.3100
             0         0         0         0         0    0.9000
    

    【讨论】:

      【解决方案3】:

      一行:

      C = [zeros(size(B,1),1) B; zeros(1,size(B,2)+1)] + diag(A);
      

      这是通过将B 扩展为一行一列,然后添加对角线来实现的。

      【讨论】:

        【解决方案4】:

        另一种可能的解决方案是使用spdiags:

        full(spdiags([A, [zeros(1, 5); spdiags(B)]], 0:5, 6, 6))
        

        可以概括为:

        full(spdiags([A,[zeros(1,size(B,2));spdiags(B)]],0:size(B,1),numel(A),numel(A)))
        

        【讨论】:

          猜你喜欢
          • 2013-12-09
          • 2011-09-17
          • 1970-01-01
          • 2014-08-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-05-16
          • 1970-01-01
          相关资源
          最近更新 更多