struct(52個の変数を持つ2つのフィールド)を行列(2x52)に変換する方法はありますか?私も同じことをしているstruct2cell
を試してみましたが、私に1×1のセル配列を与える、私は次のことを試してみました構造体を行列に変換する
struct:
sym (1x53)
prob (1x53)
symProb = reshape({x.sym}, size(53));
ありがとうございます。
struct(52個の変数を持つ2つのフィールド)を行列(2x52)に変換する方法はありますか?私も同じことをしているstruct2cell
を試してみましたが、私に1×1のセル配列を与える、私は次のことを試してみました構造体を行列に変換する
struct:
sym (1x53)
prob (1x53)
symProb = reshape({x.sym}, size(53));
ありがとうございます。
おそらく(それが唯一の二つのフィールドだから)最も簡単な方法は、単にcat
result = cat(1, x.sym, x.prob);
た場合、またはあなただけの[]
と;
result = [x.sym; x.prob]
を使用することができますを使用して第1の次元に沿ってそれらを連結することですより一般的な解決策が必要な場合は、struct2array
を若干形を変えて使用することができます
result = reshape(struct2array(x), [], numel(x)).';
sym
とprob
のデータは、実際には同じデータ型であり、同じ配列内に配置できると仮定していることに注意してください。そうでない場合は、セル配列だけが両方のフィールドを保持できます。あなたは1 x 1
セル配列の内部x.sym
あなたのデータをラップしているので、
また、あなたのコードは、1×1セル配列を得ています。次のように
別のアプローチは、次のとおりです。
symVec = [x.sym(:)]
probVec = [x.prob(:)
あなたはこれらの変数を持つ構造体、あなたの実際の例を提供することはできますか? – Marcin