Resize

Restituisce una nuova matrice con forma e dimensione modificate.

bool matrix::Resize(
  const ulong  rows,     // 
  const ulong  cols,     // nuovo numero di colonne.
  const ulong  reserve=0 // quantità di riserva in elementi.
   );
 
bool vector::Resize(
  const ulong  size,     // nuova dimensione.
  const ulong  reserve=0 // quantità di riserva in elementi.
   );

Parametri

rows

[in] Nuovo numero di righe.

cols

[in] Nuovo numero di colonne.

Valore Restituito

Restituisce true in caso di successo, altrimenti false.

Note

La matrice (o vettore) viene elaborata sul posto. Non vengono create copie. È possibile specificare qualsiasi dimensione, ad es., rows_new*cols_new!=rows_old*cols_old. A differenza di Reshape, la matrice viene elaborata riga per riga. Quando si aumenta il numero di colonne, i valori delle colonne extra non sono definiti. Quando si aumenta il numero di righe, i valori degli elementi nelle nuove righe non sono definiti. Quando il numero di colonne viene ridotto, ogni riga della matrice viene troncata.

Esempio

   matrix matrix_a={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
   Print("matrix_a\n",matrix_a);
   matrix_a.Resize(2,6);
   Print("Ressize(2,6)\n",matrix_a);
   matrix_a.Resize(3,5);
   Print("Resize(3,5)\n",matrix_a);
   matrix_a.Resize(2,4);
   Print("Resize(2,4)\n",matrix_a);
 
   /*
   matrix_a
   [[1,2,3]
    [4,5,6]
    [7,8,9]
    [10,11,12]]
   Ressize(2,6)
   [[1,2,3,4,5,6]
    [4,5,6,10,11,12]]
   Resize(3,5)
   [[1,2,3,4,5]
    [4,5,6,10,11]
    [11,12,3,8,8]]
   Resize(2,4)
   [[1,2,3,4]
    [4,5,6,10]]
   */