来源:https://ww2.mathworks.cn/help/matlab/ref/reshape.html?searchHighlight=reshape&s_tid=doc_srchtitle
eshape
说明
示例
B
= reshape(A
,sz
)
使用大小向量 sz
重构 A
以定义 size(B)
。例如,reshape(A,[2,3])
将 A
重构为一个 2×3 矩阵。sz
必须至少包含 2 个元素,prod(sz)
必须与 numel(A)
相同。
示例
B
= reshape(A
,sz1,...,szN
)
将 A
重构为一个 sz1
×...
×szN
数组,其中 sz1,...,szN
指示每个维度的大小。可以指定 []
的单个维度大小,以便自动计算维度大小,以使 B
中的元素数与 A
中的元素数相匹配。例如,如果 A
是一个 10×10 矩阵,则 reshape(A,2,2,[])
将 A
的 100 个元素重构为一个 2×2×25 数组。
示例
全部折叠
将向量重构为矩阵
将 1×10 向量重构为 5×2 矩阵。
B = 5×2
1 6
2 7
3 8
4 9
5 10
将矩阵重构为具有指定的列数
将一个 4×4 方阵重构为一个 2 列矩阵。为第一个维度指定 []
以使 reshape
自动计算合适的行数。
A = 4×4
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
B = 8×2
16 3
5 10
9 6
4 15
2 13
11 8
7 12
14 1
结果是一个 8×2 矩阵,它的元素数量与原始矩阵相同。B
也保持其在 A
中的列顺序。
将多维数组重构为矩阵
将由零组成的 3×2×3 数组重构为 9×2 矩阵。
B = 9×2
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
输入参数
全部折叠
A
- 输入数组
向量 | 矩阵 | 多维数组
输入数组,指定为向量、矩阵或多维数组。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| cell
| datetime
| duration
| calendarDuration
复数支持: 是
sz
- 输出大小
由整数组成的行向量
输出大小,指定为由整数组成的行向量。sz
的每个元素指示 B
中对应维度的大小。必须指定 sz
,以便 A
和 B
中的元素数目相同。即,prod(sz)
必须与 numel(A)
相同。
对于第二个维度以上的维度,输出 B
不反映大小为 1
的尾部维度。例如,reshape(A,[3,2,1,1])
生成 3×2 矩阵。
示例: reshape(A,[3,2])
示例: reshape(A,[6,4,10])
示例: reshape(A,[5,5,5,5])
sz1,...,szN
- 每个维度的大小
两个或以上的整数 | []
(可选)
每个维度的大小,指定为具有最多一个 []
(可选)的两个或以上的整数。必须至少指定 2 个维度大小,并且最多一个维度大小可以指定为 []
,这样会自动计算该维度的大小以确保 numel(B)
与 numel(A)
相匹配。当使用 []
自动计算维度大小时,您显式指定的维度必须均匀划分为输入矩阵 numel(A)
中的元素数目。
对于第二个维度以上的维度,输出 B
不反映大小为 1
的尾部维度。例如,reshape(A,3,2,1,1)
生成 3×2 矩阵。
示例: reshape(A,3,2)
示例: reshape(A,6,[],10)
示例: reshape(A,2,5,3,[])
示例: reshape(A,5,5,5,5)
输出参数
全部折叠
B
- 重构的数组
向量 | 矩阵 | 多维数组 | 元胞数组
重构的数组,以向量、矩阵、多维数组或元胞数组的形式返回。B
中的数据类型和元素数与 A
中的数据类型和元素数相同。B
保持其在 A
中的列顺序。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| cell
| datetime
| duration
| calendarDuration
扩展功能
tall 数组
对行数太多而无法放入内存的数组进行计算。
此函数支持 tall 数组,但存在以下限制:
-
不支持重构 tall 维度(维度一)。第一个维度输入应始终为空,如 reshape(X,[],M,N,...)
。
有关详细信息,请参阅 tall 数组。
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
GPU 数组
通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。
此函数完全支持 GPU 数组。有关详细信息,请参阅Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。
分布式数组
使用 Parallel Computing Toolbox™ 在群集的组合内存中对大型数组进行分区。
此函数完全支持分布式数组。有关详细信息,请参阅Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox)。