Resize

Modifie la taille d'une matrice ou d'un vecteur.

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.

Lorsque la taille de la matrice (ou du vecteur) est réduite, la taille du tampon destiné au stockage des données de la matrice ou du vecteur ne change pas. Si vous devez ramener la taille de la matrice (ou du vecteur) à zéro et libérer le tampon, utilisez la méthode Free.

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