Resize

Cambia el tamaño de una matriz o vector.

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á.

Cuando se reduce el tamaño de la matriz (o vector), el tamaño del búfer para almacenar los datos de la matriz o vector no cambia. Si necesita cambiar el tamaño de la matriz (o vector) a cero y liberar el búfer, utilice el método Free.

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