Vsplit

Divise verticalement une matrice en plusieurs sous-matrices. Identique à Split avec axis=1

bool matrix::Vsplit(
  const ulong  parts,      // nombre de sous-matrices
  matrix&      splitted[]  // tableau de sous-matrices résultantes
   );
 
void matrix::Vsplit(
  const ulong& parts[],    // tailles des sous-matrices
  matrix&      splitted[]  // tableau de sous-matrices résultantes
   );

Paramètres

parts

[in] Le nombre de sous-matrices dans lesquelles diviser la matrice.

splitted

[out] Tableau des sous-matrices résultantes.

Valeur de Retour

Renvoie true en cas de succès, false sinon.

Note

Si le nombre de sous-matrices est spécifié, alors des sous-matrices de même taille sont obtenues. Cela signifie que le nombre de colonnes doit être divisible par des "parties" sans reste. Des sous-matrices de tailles différentes peuvent être obtenues en utilisant un tableau de tailles de sous-matrices. Les éléments du tableau de taille sont utilisés jusqu'à ce que la matrice entière soit divisée. Si le tableau des tailles est terminé et que la matrice n'a pas encore été complètement divisée, le reste non divisé sera la dernière sous-matrice.

Exemple

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