簡體   English   中英

MATLAB:結構的二維數組(包含向量)到3-D數組?

[英]MATLAB: 2-D array of structs (containing vectors) to 3-D Array?

我有一個二維結構'cell'數組,每個數組包含許多向量:

cell(1,1).U = [1 2 3];
cell(1,2).U = [4 5 6];
cell(2,1).U = [7 8 9];
cell(2,2).U = [0 1 2];

我想將數據提取到3-D數組A(i,j,k)中。

使用單元格樣式提取將返回一個1x3的單元格,其內容為

>> {cell.U}
ans = {[cell(1,1).U]   [cell(1,2).U]   [cell(2,1).U]   [cell(2,2).U]}

因此,使用cell2mat()將其轉換為矩陣,如下所示:

cell2mat(ans)

返回一個3x4數組。

理想情況下,我想要一個2x2x3數組,以便保留索引i和j。 有什么辦法(短循環)來做到這一點?

使用CATRESHAPE 另外,不要調用您的可變cell ,因為這是一個內置函數。

>> c(1,1).U = [1 2 3];
c(1,2).U = [4 5 6];
c(2,1).U = [7 8 9];
c(2,2).U = [0 1 2];


>> out = cat(1,c.U)
>> out = reshape(out,2,2,3)
out(:,:,1) =
     1     4
     7     0
out(:,:,2) =
     2     5
     8     1
out(:,:,3) =
     3     6
     9     2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM