1×21 struct 5フィールドのstruct構造体配列を、21×5のcell配列として取り出したい場合に
struct2cell関数を用いると5×1×21のcell配列に変換されてしまいます。
21×5のcell配列として取り出すにはどのようにしたら良いでしょうか。

 채택된 답변

Shunichi Kusano
Shunichi Kusano 2020년 5월 18일

0 개 추천

5x1x21のセル配列(以下A)をそのまま利用しまして、
newA = reshape(A, [5 21]).';
で21x5になります。reshapeで要素数1である2次元目を無視して5x21に。さらに.'で転置して、21x5にしています。

댓글 수: 2

Koki Hashiguchi
Koki Hashiguchi 2020년 5월 18일
Kusano様
ご回答いただきありがとうございます。
reshapeで2次元目を無視する方法はとても勉強になりました。
Shunichi Kusano
Shunichi Kusano 2020년 5월 18일
すみません。セル配列には使えないと思い込んでいましたが、もっと簡単に書けるsqueeze関数というものがあります。
これを使って書きますと
newA = squeeze(A).';
で大丈夫です。これは要素数が1の次元を自動で削除してくれます。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터 및 File Exchange에서 構造体에 대해 자세히 알아보기

제품

릴리스

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!