如何在没有for循环的情况下将一个小矩阵复制并粘贴到一个更大的矩阵中

How to copy and paste a small matrix into a bigger matrix without for-loop

比如我们有一个小矩阵

B = [5 2, 
     3 4]

还有大一点的

A = [1 0 0 0 0
     0 1 0 0 0
     0 0 1 0 0
     0 0 0 1 0
     0 0 0 0 1]

现在我想将 B 粘贴到 A 中,使 A 看起来像

A = [1 0 0 0 0
     0 1 0 0 0
     0 0 1 0 0
     0 0 0 5 2
     0 0 0 3 4]

也就是说右下角A的值已经被替换了。我想在不使用 for 循环的情况下执行此操作。这怎么可能?

PS:

  1. A 始终是 eye(n) 矩阵(n 是常数)。
  2. B 是一个方阵,大小可变,但总是小于或等于 A

找到A的相关行和列下标,并把B放在那里。

A(end-size(B,1)+1:end, end-size(B,2)+1:end)=B

即使 B 不是方阵也有效。