Resize

Retorna uma nova matriz da forma e tamanho especificados.

bool matrix::Resize(
  const ulong  rows,     // 
  const ulong  cols,     // novo número de colunas
  const ulong  reserve=0 // número reservado de elementos
   );
 
bool vector::Resize(
  const ulong  size,     // novo tamanho
  const ulong  reserve=0 // número reservado de elementos
   );

Parâmetros

rows

[in]  Novo número de linhas.

cols

[in]  Novo número de colunas.

Valor retornado

Retorna true se bem-sucedido, caso contrário, false.

Observação

A matriz (ou vetor) é processada localmente. Nenhuma cópia é criada. Qualquer dimensão pode ser definida, ou seja rows_new*cols_new!=rows_old*cols_old. Ao contrário do Reshape, a matriz é processada linha por linha. Se o número de colunas aumenta, os valores das colunas "extras" são indefinidos. Quando o número de filas é aumentado, os valores dos elementos das novas filas ficam indefinidos. Quando o número de colunas é reduzido, cada linha da matriz é truncada.

Exemplo:

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