Reshape

Ändern der Form einer Matrix, ohne ihre Daten zu ändern.

void  Reshape(
  const ulong  rows,     // neue Zeilenanzahl.
  const ulong  cols      // neue Spaltenanzahl.
   );

Parameter

rows

[in]  Neue Zeilenanzahl.

cols

[in]  Neue Spaltenanzahl.

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. Wenn der Matrixpuffer vergrößert wird, sind die zusätzlichen Werte undefiniert.

Beispiel

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