Vsplit

Divide una matrice verticalmente in più sottomatrici. Uguale a Split con asse = 1

bool matrix::Vsplit(
  const ulong  parts,      // numero di sottoatrici
  matrix&      splitted[]  // array delle sottomatrici risultanti
   );
 
void matrix::Vsplit(
  const ulong& parts[],    // dimensioni delle sottomatrici
  matrix&      splitted[]  // array delle sottomatrici risultanti
   );

Parametri

parts

[in] Il numero di sottomatrici in cui dividere la matrice.

splitted

[out] Array delle sottomatrici risultanti.

Valore Restituito

Restituisce true in caso di successo, altrimenti false.

Note

Se viene specificato il numero di sottomatrici, si ottengono submatrici con le stesse dimensioni. Ciò significa che il numero delle colonne deve essere divisibile per le 'parti' senza resto. È possibile ottenere sottomatrici di dimensioni diverse utilizzando un array delle dimensioni delle sottomatrici. Gli elementi di dimensioni dell'array vengono utilizzati fino a quando l'intera matrice viene divisa. Se la dimensione dell'array è terminato e la matrice non è ancora stata completamente divisa, il resto indiviso sarà l'ultima sottomatrice.

Esempio

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