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, [])自动算列数。