Resize

Retorna una nueva matriz de la forma y el tamaño especificados.

bool matrix::Resize(
  const ulong  rows,     // 
  const ulong  cols,     // nuevo número de columnas
  const ulong  reserve=0 // número de elementos reservados
   );
 
bool vector::Resize(
  const ulong  size,     // nuevo tamaño
  const ulong  reserve=0 // número de elementos reservados
   );

Parámetros

rows

[in]  Nuevo número de filas.

cols

[in]  Nuevo número de columnas.

Valor retornado

Retorna true en el caso de éxito, de lo contrario, false.

Observación

La matriz (o vector) se procesa en el lugar. No se crea ninguna copia. Podemos establecer las dimensiones que deseemos, es decir, rows_new*cols_new!=rows_old*cols_old. A diferencia de Reshape, la matriz se procesa línea por línea. Si aumenta el número de columnas, los valores de las columnas "sobrantes" no estarán definidos. Al aumentar el número de filas, los valores de los elementos de las nuevas filas no estarán definidos. Al reducir el número de columnas, cada fila de la matriz se truncará.

Ejemplo:

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