【matlab】構造体のメンバを一括して出力する方法
ベクトルではなくリニアインデックス順に順次に出力されてくる関数の対応がよくわからなかったのでメモ。
<題材>
>>a = dir(matlabroot);
a =
22x1 struct array with fields:
name
date
bytes
isdir
datenum
--------------------------
・単一のフィールドを取り出す方法 →インデックスで指定可能
--------------------------
・単一のフィールドを取り出す方法 →インデックスで指定可能
>> a(1)
ans =
name: '.'
date: '04-9-2013 16:02:16'
bytes: 0
isdir: 1
datenum: 7.3548e+05
---------------------------
・すべてのメンバを一括して取り出す方法1 →vertcatを使う
>> b = vertcat(char(a.name))
**Matlabリファレンスを参照**
・すべてのメンバを一括して取り出す方法1 →vertcatを使う
>> b = vertcat(char(a.name))
b =
.
..
appdata
bin
etc
extern
help
※charがないと文字数が合わず連結できない。
※vertcatで縦につなぐのがコツ。’[ ]’やhorzcatで出力すると全部つながって一行になる
※charがないと文字数が合わず連結できない。
※vertcatで縦につなぐのがコツ。’[ ]’やhorzcatで出力すると全部つながって一行になる
※最終的な出力をcellにする場合はcellstr(vertcat(char(a.name)))でok
---------------------------
・すべてのメンバを一括して取り出す方法2 → struct2cellを使う**Matlabリファレンスを参照**