Vsplit

Bir matrisi dikey olarak birden çok alt matrise böler. axis=1 Split ile aynıdır

bool matrix::Vsplit(
  const ulong  parts,      // alt matris sayısı
  matrix&      splitted[]  // ortaya çıkan alt matris
   );
 
void matrix::Vsplit(
  const ulong& parts[],    // alt matrislerin büyüklükleri
  matrix&      splitted[]  // ortaya çıkan alt matris
   );

Parametreler

parts

[in] Matrisin bölüneceği alt matris sayısı.

splitted

[out] Ortaya çıkan alt matris.

Geri dönüş değeri

Başarılı olursa true, aksi takdirde false geri döndürür.

Not

Alt matris sayısı belirtilirse, aynı büyüklükte alt matrisler elde edilir. Bu, sütun sayısının parts parametresine kalansız olarak bölünebilir olması gerektiği anlamına gelir. Elde edilecek alt matrislerin büyüklükleri belirtilerek farklı büyüklüklerde alt matrisler elde edilebilir. Matris belirtilen büyüklükteki alt matrisler için bölünmeye başlayacaktır. Eğer belirtilen büyüklükteki alt matrisler dolduysa ve matris hala tamamen bölünmediyse, bölünmemiş kalan kısım son alt matris olarak yazılacaktır.

Örnek:

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