MATLAB: セル配列のペアから構造体をつくる

MATLABでプログラムをしていて、セル配列で作ったけどやっぱり構造体でまとめたい、なんてことがあったりします。

そのやり方をメモしておきます。

たとえば

hoge = {'kore', 'are', 'acchi', 'kottch'};

みたいな名前と

nagasa = {12, 13, 15, 20};

のような例えば長さを格納したセル配列があったとします。それぞれが対応していて ‘kore’の流さが12で、’are’の流さが13のようになっているとしましょう。

これら二つを構造体でまとめたい、という時はcell2structを使います。

hogeNoNagasa = cell2struct( nagasa, hoge, 2);

とします。

hogeNoNagasaをコマンド・ウィンドウで叩いてみます:

>> hogeNoNagasa
hogeNoNagasa = 
  フィールドをもつ struct:

      kore: 12
       are: 13
     acchi: 15
    kottch: 20

fieldと値が正しく入っていますね。

fieldの’kore’を参照してみますと

>> hogeNoNagasa.kore
ans =
    12

ということで正しく構造体になっています。