Vsplit

Partición vertical de una matriz en varias submatrices. Lo mismo que Split con axis=1

bool matrix::Vsplit(
  const ulong  parts,      // número de submatrices
  matrix&      splitted[]  // array de submatrices obtenidas
   );
 
void matrix::Vsplit(
  const ulong& parts[],    // dimensiones de las submatrices
  matrix&      splitted[]  // array de submatrices obtenidas
   );

Parámetros

parts

[in]  Número de submatrices en el que se debe dividir la matriz.

splitted

[out]  Array de submatrices obtenidas.

Valor retornado

Retorna true en el caso de éxito, de lo contrario, false.

Observación

Si se especifica el número de submatrices, se obtendrán submatrices del mismo tamaño. Es decir, el número de columnas deberá dividirse por el número "parts" sin resto. Se pueden obtener matrices de diferentes tamaños utilizando un array de tamaños de submatrices. Los elementos del array de tamaños se utilizarán hasta dividir toda la matriz. Si el array de tamaños se ha agotado y la matriz aún no está completamente dividida, el resto sin dividir será la última submatriz.

Ejemplo:

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