| MATLAB Function Reference | ![]() |
表示
f = getfield(s,'field')
f = getfield(s,{i,j},'field',{k})
詳細
f = getfield(s,'field'),
は、s が 1行1列の構造体のとき、指定のフィールドの内容を出力します。これは、シンタックスf = s.field に等価です。
f = getfield(s,{i,j},'field',{k})
は、指定のフィールドの内容を出力します。これは、シンタックスf = s(i,j).field(k) に等価です。すべてのサブスクリプトは、セル配列として渡されなければなりません。つまり、(上記の{i,j} や {k} のように)中括弧で囲まなければなりません。フィールドの参照は、文字列として渡します。
例題
mystr(1,1).name = 'alice'; mystr(1,1).ID = 0; mystr(2,1).name = 'gertrude'; mystr(2,1).ID = 1
が与えられたとき、コマンド f = getfield(mystr,{2,1},'name') は、以下を出力します。
f = gertrude
すべての nameフィールド(または他のフィールド)の内容をリストするためには、ループ内で getfield を呼び出してください。
for i = 1:2
name{i} = getfield(mystr,{i,1},'name');
end
name
name =
'alice' 'gertrude'
参考
| getenv | getframe | ![]() |