來源: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)。