Resize

Retourne une nouvelle matrice avec une forme et une taille modifiées.

bool matrix::Resize(
  const ulong  rows,     // 
  const ulong  cols,     // nouveau nombre de colonnes
  const ulong  reserve=0 // quantité d'éléments de réserve
   );
 
bool vector::Resize(
  const ulong  size,     // nouvelle taille
  const ulong  reserve=0 // quantité d'éléments de réserve
   );

Paramètres

rows

[in]  Nouveau nombre de lignes.

cols

[in]  Nouveau nombre de colonnes.

Valeur de Retour

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

Note

La matrice (ou vecteur) est traitée sur place. Aucune copie n'est créée. N'importe quelle taille peut être spécifiée, c'est-à-dire rows_new*cols_new!=rows_old*cols_old. Contrairement à Reshape, la matrice est traitée ligne par ligne. Lorsque vous augmentez le nombre de colonnes, les valeurs des colonnes supplémentaires sont indéfinies. Lors de l'augmentation du nombre de lignes, les valeurs des éléments dans les nouvelles lignes sont indéfinies. Lorsque le nombre de colonnes est réduit, chaque ligne de la matrice est tronquée.

Exemple

   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("Resize(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]]
   Resize(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]]
   */