Vsplit

행렬을 세로로 여러 부분 행렬로 분할 axis=1로 Split과 동일

bool matrix::Vsplit(
  const ulong  parts,      // 부분 행렬의 수
  matrix&      splitted[]  // 결과 부분 행렬의 배열
   );
 
void matrix::Vsplit(
  const ulong& parts[],    부분 행렬의 크기
  matrix&      splitted[]  // 결과 부분 행렬의 배열
   );

매개 변수

parts

【in】 행렬을 나눌 부분 행렬의 수입니다.

splitted

【out】 결과 부분 행렬의 배열입니다.

반환값

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

참조

부분 행렬의 수가 지정되면 동일한 크기의 부분 행렬을 얻습니다. 열의 개수는 나머지 없이 '부분'으로 나눌 수 있어야 함을 의미합니다. 다양한 크기의 부분 행렬은 부분 행렬 크기의 배열을 사용하여 얻을 수 있습니다. 크기 배열의 요소는 전체 행렬이 분할될 때까지 사용됩니다. 크기 배열이 종료되고 행렬이 아직 완전히 분할되지 않은 경우 분할되지 않은 나머지가 마지막 부분 행렬이 됩니다.

   matrix matrix_a={{ 123456},
                    { 789,10,11,12},
                    {13,14,15,16,17,18}};
   matrix splitted[];
   ulong  parts[]={2,3};
 
   matrix_a.Vsplit(2,splitted);
   for(uint i=0i<splitted.Size(); i++)
      Print("splitted ",i,"\n",splitted[i]);
 
   matrix_a.Vsplit(3,splitted);
   for(uint i=0i<splitted.Size(); i++)
      Print("splitted ",i,"\n",splitted[i]);
 
   matrix_a.Vsplit(parts,splitted);
   for(uint i=0i<splitted.Size(); i++)
      Print("splitted ",i,"\n",splitted[i]);
 
 
  /*
     splitted 0
     [[1,2,3]
      [7,8,9]
      [13,14,15]]
     splitted 1
     [[4,5,6]
      [10,11,12]
      [16,17,18]]
 
     splitted 0
     [[1,2]
      [7,8]
      [13,14]]
     splitted 1
     [[3,4]
      [9,10]
      [15,16]]
     splitted 2
     [[5,6]
      [11,12]
      [17,18]]
 
     splitted 0
     [[1,2]
      [7,8]
      [13,14]]
     splitted 1
     [[3,4,5]
      [9,10,11]
      [15,16,17]]
     splitted 2
     [[6]
      [12]
      [18]]
 
  */