雲雀は高く空を舞い このページをアンテナに追加 RSSフィード

「ひよこは高く空を舞い」について

2006-06-01

[]構造体の呼び出しにおけるダイナミックフィールドリファレンス 構造体の呼び出しにおけるダイナミックフィールドリファレンス - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - 構造体の呼び出しにおけるダイナミックフィールドリファレンス - 雲雀は高く空を舞い 構造体の呼び出しにおけるダイナミックフィールドリファレンス - 雲雀は高く空を舞い のブックマークコメント

http://blogs.mathworks.com/loren/?p=6:titleより.

Matlabのデータ型の1つ,構造体のフィールドには.に続く文字列を指定することでアクセスできる.

allegro.height = 175;
allegro.weight = 62;

y = allegro.weight;

.()を使うことで文字列を変数で指定できる.

property{1} = "height";
property{2} = "weight";

allegro.(property{1}) = 175;
allegro.(property{2}) = 62;

y = allegro.(property{2});

メリットとしては扱いやすいことや、分かりやすいことが挙げられる.複雑な構造体*1を使用する際にsetfield, getfield, evalを使うよりもよっぽど読みやすく分かりやすい.

追記

fieldnamesと言う関数があるとか.これはfieldnames(structure)とすることでフィールドの一覧をセル構造体として出力する.

*1:個人的には「複雑な構造体」が出る時点で何らかしら問題があるんじゃないかと思うけど

テクノラティプロフィール