将2x2矩阵插入3x3矩阵

时间:2014-09-23 04:40:12

标签: matlab

A = [3 3 6;
     1 5 2;
     8 1 7]
  

"将矩阵A复制到矩阵g中。使用h命令分配2 x 2矩阵zeros。   想象一个矩阵,定义为右上角的2 x 2元素矩阵   矩阵g;用矩阵h替换这个元素矩阵。"

创建零矩阵没有问题,但我不确定如何以问题的方式将矩阵h添加到矩阵g中。

1 个答案:

答案 0 :(得分:2)

这类问题假设您知道如何索引矩阵。让我们一次解决这个问题的每个部分,不管吗?

  1. 将矩阵A复制到矩阵g

    这很直接。你只需要这样做:

    g = A;
    

    在这里,您将矩阵A复制到名为g的变量

  2. 使用h命令分配2 x 2矩阵zeros

    您已经在我的帖子中看到了这一点:

    h = zeros(2, 2);
    
  3. 在矩阵g的右上角画出一个定义为2 x 2元素矩阵的矩阵;用矩阵h

    替换这个元素矩阵

    现在,这可能是你混淆的地方。您可以一次一个元素访问矩阵中的元素,或一次访问元素。这是第一种方式:

    v = A(r,c)
    

    rc将是您要在矩阵A中访问的单行和列,而v会存储此结果。因此,如果我做了:

    v = A(1,2)
    

    上面会访问第1行第2列的值。在这种情况下,我们会得到3

    您还可以一次访问元素。具体来说,您可以这样做:

     v = A(r1:r2, c1:c2)
    

    这意味着您可以在矩阵r1中的行r2c1以及列c2A之间获取值。所以,如果你做这样的事情:

     v = A(1:2,2:3)
    

    这意味着您要从A中获取第1行和第2行之间以及第2列和第3列之间的值。如果您这样做,v实际上是:

     v = [3 6;
          5 2]
    

    这正是问题所在。 g的右上角位于第1行和第2行以及第2列和第3列之间。您希望将h放入这些坐标中,因此您只需要在{{{{}}中反转操作1}}:

    g

    因此,您的矩阵现在应如下所示:

     g(1:2,2:3) = h;
    

  4. 在您的问题的评论中,有一个很棒的链接可以教您如何访问元素并在矩阵中分配元素以及其他一些好东西:http://www.mathworks.com/company/newsletters/articles/matrix-indexing-in-matlab.html。这是一个很好的链接,所以请查看它!