1
我想將結構數組轉換爲矩陣。結構的每個字段存儲一個可以達到520000行的向量。單個結構數組中最多可以有20個字段,但行數相同。將結構數組轉換爲矩陣
作爲向下縮放的示例考慮結構s
,其中,每個字段是一個整數:
s=struct('a',1,'b',2);
s(2)=struct('a',3,'b',4);
s=s';
在所希望的輸出,每個字段將對應於一列。 a
值將在第一列,而b
值將在第二:
desiredOutput = [1 2; 3 4];
我已經以間接的方式走近這個:
cell2mat(struct2cell(s))'
然而,這涉及兩個轉變,我覺得由於我的結構良好的表現,這是不必要的。
我也走近這個使用for循環:
fields = fieldnames(s);
nrows = size(s,1);
ncols = numel(fields);
desiredOutput = nan(nrows,ncols);
for jj=1:ncols
desiredOutput(:,jj) = [s.(fields{fields(jj)})]';
end
我希望能找到一個struct2mat
功能,但它不存在。有沒有更簡單的方法來完成我不知道的任務?
這是一個有趣的方法,但略有不同的情況。您必須使用相同的字段名才能使用此方法,而在我的使用案例中,它們是不同的,但感謝分享並嘗試 – brodoll