2011-09-22 3 views
-1

거대한 2D 행렬이 있습니다. 이 2D 행렬로부터 가능한 크기 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;