MATLAB 数组函数参考

MATLAB reshape 函数改变数组形状,元素总数和按列优先的顺序不变。

语法

B = reshape(A, m, n)
B = reshape(A, sz)    % sz = [m n]

输入参数

参数说明
A输入数组
m, n新形状的行数、列数,乘积须等于 numel(A)

输出

B:m×n 的新数组,元素按列优先填入。

示例

A = 1:12;
B = reshape(A, 3, 4)
B =
     1     4     7    10
     2     5     8    11
     3     6     9    12

注意填充是按列:先填第 1 列 1,2,3,再第 2 列 4,5,6……

想按行填,先转置再 reshape:

B2 = reshape(A', 3, 4)'

注意事项

  • 新形状元素总数必须与原来一致,否则报错;
  • 只用 [] 做自适应:reshape(A, 3, []) 自动算列数。