2011-09-22 56 views
-1

我有一個巨大的二維矩陣。 從這個二維矩陣中提取儘可能多的尺寸爲8 * 8的子矩陣之後,我在子矩陣中做了一些必要的修改。 現在我想通過用相應的新修改的子矩陣替換提取的子矩陣來重構原始的2D矩陣。 提取子矩陣中每個元素的位置以及相應的新修改子矩陣在原始2D矩陣中應該是相同的。 我如何使用Matlab做到這一點? 謝謝。將經過必要修改的提取子矩陣恢復到使用Matlab提取的原始矩陣中

+2

如果您發佈小代碼示例來顯示問題,它將有所幫助。在Matlab中做很多先進的矩陣運算是很容易的。此外,沒有必要真正「提取」子矩陣來修改它們,然後「放回」。您可以在主矩陣本身上完成所有任務。您可以使用簡單的[A; B; C]從更小的矩陣和許多其他方式構建矩陣。 – Nasser

+0

感謝4解決方案。 –

+0

但是我只是對少數子矩陣進行修改而不是全部修改。在這種情況下,我將不得不提取它們並分別進行更改。 –

回答

1
% let's generate a big 100x100 matrix 
big_matrix = rand(100, 100); 

% the indices of an exemplary small matrix 
sm_x = 20:27; 
sm_y = 20:27 

% the small matrix 
small_matrix = big_matrix(sm_x:sm_y); 

% let's modify the small matrix - replace this line with your own code 
small_matrix(small_matrix > 0.5) = 1; 

% let's write the modified small matrix back to the original position 
big_matrix(sm_x:sm_y) = small_matrix;