簡體   English   中英

將結構轉換為矩陣MATLAB

[英]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)).';

請注意,所有這些都假設symprob中的數據實際上是相同的數據類型,因此可以放置在同一數組中,否則,單元格數組是保存兩個字段的唯一方法。

同樣,您的代碼會產生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.

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