[英]Convert struct to matrix MATLAB
有沒有一種方法可以將結構(2個字段,每個字段具有52個變量)轉換為矩陣(2x52)? 謝謝
struct:
sym (1x53)
prob (1x53)
我嘗試了以下方法,這給了我一個1 x 1的細胞陣列
symProb = reshape({x.sym}, size(53));
我也嘗試過struct2cell
這樣做。
可能最簡單的事情(因為它只有兩個字段)是使用cat
沿第一維將它們簡單地連接起來
result = cat(1, x.sym, x.prob);
或者,您可以只使用[]
和;
result = [x.sym; x.prob]
如果您需要更通用的解決方案,可以使用struct2array
進行一些重塑
result = reshape(struct2array(x), [], numel(x)).';
請注意,所有這些都假設sym
和prob
中的數據實際上是相同的數據類型,因此可以放置在同一數組中,否則,單元格數組是保存兩個字段的唯一方法。
同樣,您的代碼會產生1 x 1的單元格數組,因為您將數據x.sym
包裝在 1 x 1
單元格數組內。
一種替代方法如下:
symVec = [x.sym(:)]
probVec = [x.prob(:)
您可以使用此:
cell2mat(struct2cell(YourStructure))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.