Resize

행렬 또는 벡터의 크기를 변경합니다.

bool matrix::Resize(
  const ulong  rows,     // 
  const ulong  cols,     // 새로운 수 혹은 열
  const ulong  reserve=0 // 아이템에 어마운트 보관
   );
 
bool vector::Resize(
  const ulong  size,     // 새로운 사이즈.
  const ulong  reserve=0 // 아이템에 어마운트 보관
   );

매개 변수

rows

[in]  새로운 수 혹은 행.

cols

[in]  새로운 수 혹은 열.

반환값

성공하면 true를 반환하고 그렇지 않으면 false를 반환.

참조

행렬(또는 벡터)이 처리됩니다. 복사본이 생성되지 않습니다. 모든 크기를 지정할 수 있습니다(즉, rows_new*cols_new!=rows_old*cols_old). Reshape와 달리 행렬은 행 단위로 처리됩니다. 열 수를 늘리면 추가 열의 값이 정의되지 않습니다. 행 수를 늘리면 새 행의 요소 값이 정의되지 않습니다. 열 수가 줄어들면 행렬의 각각의 행이 잘립니다.

행렬(또는 벡터)의 크기를 줄여도 행렬 또는 벡터 데이터를 저장하는 버퍼의 크기는 변경되지 않습니다. 행렬(또는 벡터)의 크기를 0으로 변경하고 버퍼를 해제해야 하는 경우 Free 메서드를 사용하십시오.

   matrix matrix_a={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
   Print("matrix_a\n",matrix_a);
   matrix_a.Resize(2,6);
   Print("Ressize(2,6)\n",matrix_a);
   matrix_a.Resize(3,5);
   Print("Resize(3,5)\n",matrix_a);
   matrix_a.Resize(2,4);
   Print("Resize(2,4)\n",matrix_a);
 
   /*
   matrix_a
   [[1,2,3]
    [4,5,6]
    [7,8,9]
    [10,11,12]]
   Ressize(2,6)
   [[1,2,3,4,5,6]
    [4,5,6,10,11,12]]
   Resize(3,5)
   [[1,2,3,4,5]
    [4,5,6,10,11]
    [11,12,3,8,8]]
   Resize(2,4)
   [[1,2,3,4]
    [4,5,6,10]]
   */