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