더북(TheBook)

이 코드를 실행하면 콘솔 창에 다음과 같이 출력됩니다. 3×4 크기의 행렬 mat1이 1행으로 구성된 1×12 크기의 행렬 mat2로 변경된 것을 확인할 수 있습니다.

mat1:
[  1,   2,   3,   4;
 5,   6,   7,   8;
 9,  10,  11,  12]
mat2:
[  1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12]

Mat::reshape() 멤버 함수처럼 행렬의 모양을 변경시키는 것이 아니라 단순히 행렬의 행 크기를 변경하고 싶을 때에는 Mat::resize() 함수를 사용할 수 있습니다.

void Mat::resize(size_t sz);
void Mat::resize(size_t sz, const Scalar& s);

sz

새로운 행 개수

s

새로 추가되는 행 원소의 초깃값

 

Mat::resize() 함수는 행렬의 행 개수를 sz개로 변경합니다. sz가 기존 행렬의 행 개수보다 작으면 아래쪽 행을 제거하고, 기존 행렬의 행 개수보다 크면 아래쪽에 행을 추가합니다. 이때 추가하는 행 원소의 초깃값으로 s를 지정할 수 있습니다. 예를 들어 앞서 살펴본 mat1 행렬의 행을 5로 증가시키려면 다음과 같이 코드를 작성합니다.

mat1.resize(5, 100);
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.