Resize

返回已更改形状和大小的新矩阵。

bool matrix::Resize(
  const ulong  rows,     // 
  const ulong  cols,     // 新列数。
  const ulong  reserve=0 // 项目保留额度。
   );
 
bool vector::Resize(
  const ulong  size,     // 新大小。
  const ulong  reserve=0 // 项目保留额度。
   );

参数

rows

[输入]  新的行数.

cols

[输入]  新的列数.

返回值

成功时返回 true,否则返回 false。

注意

矩阵(或向量)就地处理。 不会创建任何副本。 可以指定任何大小,即,rows_new*cols_new!=rows_old*cols_old。 与 Reshape 不同,矩阵是逐行处理的。 当增加列数时,额外列的数值均未定义。 当增加行数时,额外行的数值均未定义。 当减少列数时,矩阵的每一行都会被截断。

举例

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