Resize

Rückgabe einer neuen Matrix mit geänderter Form und Größe.

bool matrix::Resize(
  const ulong  rows,     // 
  const ulong  cols,     // neue Spaltenanzahl.
  const ulong  reserve=0 // reservierte Anzahl von Elementen.
   );
 
bool vector::Resize(
  const ulong  size,     // neue Größe.
  const ulong  reserve=0 // reservierte Anzahl von Elementen.
   );

Parameter

rows

[in]  Neue Zeilenanzahl.

cols

[in]  Neue Spaltenanzahl.

Rückgabewert

Gibt bei Erfolg true zurück, andernfalls false.

Hinweis

Die Matrix (oder der Vektor) wird am Speicherort verarbeitet. Es werden keine Kopien erstellt. Es werden keine Kopien erstellt. Es kann eine beliebige Größe angegeben werden, d. h. rows_new*cols_new!=rows_old*cols_old. Im Gegensatz zu Reshape wird die Matrix zeilenweise verarbeitet. Wenn die Anzahl der Spalten erhöht wird, sind die Werte der zusätzlichen Spalten undefiniert. Wenn die Anzahl der Zeilen erhöht wird, sind die Werte der Elemente in den neuen Zeilen undefiniert. Wenn die Anzahl der Spalten verringert wird, wird jede Zeile der Matrix abgeschnitten.

Beispiel

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