将矩阵的一部分复制到具有相同索引的另一个空矩阵

时间:2013-06-27 21:38:16

标签: matlab matrix indexing

我正在尝试将 matlab 中的矩阵(矩阵1)的一部分复制到另一个零的矩阵(矩阵2),以便从矩阵1复制的部分具有相同的索引矩阵2,例如

Matrix 1(mat1):

0 3 0 0 2 4 1 2 6
1 3 4 2 0 0 0 2 0 
0 2 6 1 3 6 6 1 1
0 0 0 2 1 3 3 1 0
1 4 5 2 3 3 0 0 1

Matrix 2(mat2)所需输出

0 0 0 0 0 0 0 0 0
0 0 4 2 0 0 0 0 0
0 0 6 1 3 6 6 0 0
0 0 0 2 1 3 3 0 0
0 0 0 0 0 0 0 0 0

我尝试过像

这样的东西
mat2([2:4],[3:7]) = mat1([2:4],[3:7]) 

但当然它不起作用......任何有效方法的想法?我找不到另一个线程来帮助解决这个问题。

谢谢!

2 个答案:

答案 0 :(得分:6)

确实有效。您只需要先创建mat2

mat2 = zeros(size(mat1));
mat2(2:4, 3:7) = mat1(2:4, 3:7);

请注意,您不需要这些范围上的方括号。

答案 1 :(得分:2)

这样做:

mat2 = zeros(size(mat1));

复制之前。