【问题标题】:How do I replace part of a matrix with another smaller matrix?如何用另一个较小的矩阵替换部分矩阵?
【发布时间】:2019-07-07 12:17:07
【问题描述】:

我有一个 3000x3000x70 的矩阵,我将它的一小部分与主矩阵分开处理。较小的矩阵为 250x250x70。如何替换主矩阵的相同索引?

这是我尝试过的:

combo_matrix = main_matrix(2750:end,2750:end,:)==small_matrix

感谢任何帮助!

【问题讨论】:

    标签: matlab


    【解决方案1】:

    在您的问题中,您使用的是“==”,但这是为了测试是否相等,而不是执行分配。您可以将main_matrix 的副本创建为combo_matrix,并通过以下方式替换块。请注意,替换索引必须从 2751 而不是 2750 开始,因为您要替换最后的 250 个值。

    % create matrices with random values for demonstration
    main_matrix = rand(3000, 3000, 70);
    small_matrix = rand(250, 250, 70);
    
    % to create a copy of the original main_matrix:
    combo_matrix = main_matrix;
    combo_matrix(2751:end,2751:end,:) = small_matrix;
    

    或者通过以下方式覆盖原main_matrix中的值:

    % to replace values in original main_matrix:
    main_matrix(2751:end,2751:end,:) = small_matrix;
    

    【讨论】:

      猜你喜欢
      • 2014-12-17
      • 1970-01-01
      • 2014-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-10
      • 1970-01-01
      • 2017-02-10
      相关资源
      最近更新 更多