이 코드를 실행하면 콘솔 창에 다음과 같이 출력됩니다. 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);