如何在没有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:
- A 始终是 eye(n) 矩阵(n 是常数)。
- B 是一个方阵,大小可变,但总是小于或等于 A
找到A
的相关行和列下标,并把B
放在那里。
A(end-size(B,1)+1:end, end-size(B,2)+1:end)=B
即使 B
不是方阵也有效。
比如我们有一个小矩阵
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:
- A 始终是 eye(n) 矩阵(n 是常数)。
- B 是一个方阵,大小可变,但总是小于或等于 A
找到A
的相关行和列下标,并把B
放在那里。
A(end-size(B,1)+1:end, end-size(B,2)+1:end)=B
即使 B
不是方阵也有效。