matlab中reshape 重構數組


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

A = 1:10;
B = reshape(A,[5,2])
B = 5×2

     1     6
     2     7
     3     8
     4     9
     5    10

 
 

將矩陣重構為具有指定的列數

將一個 4×4 方陣重構為一個 2 列矩陣。為第一個維度指定 [] 以使 reshape 自動計算合適的行數。

A = magic(4)
A = 4×4

    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1

B = reshape(A,[],2)
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 矩陣。

A = zeros(3,2,3);
B = reshape(A,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,以便 AB 中的元素數目相同。即,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 數組。有關詳細信息,請參閱Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。

分布式數組
使用 Parallel Computing Toolbox™ 在群集的組合內存中對大型數組進行分區。

此函數完全支持分布式數組。有關詳細信息,請參閱Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox)。

另請參閱

colon | permute | repmat | shiftdim | squeeze


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM