【问题标题】:Copying part of a matrix to another empty matrix with the same indices将矩阵的一部分复制到另一个具有相同索引的空矩阵
【发布时间】:2013-06-27 21:38:16
【问题描述】:

我正在尝试将 ma​​tlab 中的矩阵(矩阵 1)的一部分复制到另一个零的空矩阵(矩阵 2),以便我从矩阵 1 复制的部分在矩阵2,例如

矩阵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

矩阵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]) 

但当然它不起作用......有什么有效的方法来做到这一点吗?我找不到其他线程来帮助解决这个问题。

谢谢!

【问题讨论】:

    标签: matlab matrix indexing


    【解决方案1】:

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

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

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

    【讨论】:

    • 嗨,是的,你是对的,它确实有效。我也先创建了空矩阵,但犯了一个愚蠢的索引错误!谢谢
    【解决方案2】:

    这样做:

    mat2 = zeros(size(mat1));

    在复制之前。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-13
      • 2012-12-11
      • 2011-08-16
      • 1970-01-01
      相关资源
      最近更新 更多