Vsplit

Divisão vertical de uma matriz em várias submatrizes. O mesmo que Split com axis=1

bool matrix::Vsplit(
  const ulong  parts,      // número de submatrizes
  matrix&      splitted[]  // matrizes das submatrizes obtidas
   );
 
void matrix::Vsplit(
  const ulong& parts[],    // tamanhos das submatrizes
  matrix&      splitted[]  // matrizes das submatrizes obtidas
   );

Parâmetros

parts

[in]  Número de submatrices para divisão da matriz.

splitted

[out]  Matriz de submatrices recebidas.

Valor retornado

Retorna true se bem-sucedido, caso contrário, false.

Observação

Se o número de submatrizes for especificado, serão obtidas submatrizes do mesmo tamanho. Em outras palavras, o número de colunas deve ser dividido pelo número de parts sem um resto. Submatrizes de diferentes tamanhos podem ser obtidas usando uma matriz de tamanhos de submatrizes. Os elementos da matriz de tamanho são usados até que toda a matriz seja dividida. Se a matriz foi completamente dividida e o tamanho restante não for suficiente para formar uma submatriz completa, o restante não dividido será a última submatriz.

Exemplo:

   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]]
 
  */