A = [3 3 6;
1 5 2;
8 1 7]
"将矩阵
A
复制到矩阵g
中。使用h
命令分配2 x 2矩阵zeros
。 想象一个矩阵,定义为右上角的2 x 2元素矩阵 矩阵g
;用矩阵h
替换这个元素矩阵。"
创建零矩阵没有问题,但我不确定如何以问题的方式将矩阵h
添加到矩阵g
中。
答案 0 :(得分:2)
这类问题假设您知道如何索引矩阵。让我们一次解决这个问题的每个部分,不管吗?
将矩阵A
复制到矩阵g
:
这很直接。你只需要这样做:
g = A;
在这里,您将矩阵A
复制到名为g
的变量
使用h
命令分配2 x 2矩阵zeros
:
您已经在我的帖子中看到了这一点:
h = zeros(2, 2);
在矩阵g
的右上角画出一个定义为2 x 2元素矩阵的矩阵;用矩阵h
:
现在,这可能是你混淆的地方。您可以一次一个元素访问矩阵中的元素,或一次访问组元素。这是第一种方式:
v = A(r,c)
r
和c
将是您要在矩阵A
中访问的单行和列,而v
会存储此结果。因此,如果我做了:
v = A(1,2)
上面会访问第1行第2列的值。在这种情况下,我们会得到3
。
您还可以一次访问组元素。具体来说,您可以这样做:
v = A(r1:r2, c1:c2)
这意味着您可以在矩阵r1
中的行r2
和c1
以及列c2
和A
之间获取值。所以,如果你做这样的事情:
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;
在您的问题的评论中,有一个很棒的链接可以教您如何访问元素并在矩阵中分配元素以及其他一些好东西:http://www.mathworks.com/company/newsletters/articles/matrix-indexing-in-matlab.html。这是一个很好的链接,所以请查看它!