如何用另一个较小的矩阵替换矩阵的一部分?

时间:2019-07-07 01:51:28

标签: matlab

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

这是我尝试过的:

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

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

% 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;