| MATLAB Function Reference | ![]() |
Syntax
f = getfield(s,'field')
f = getfield(s,{i,j},'field',{k})
Description
f = getfield(s,'field'),
s 為 1-by-1 的結構,將傳回所指定欄位的內容。相當於 f = s.field 。
若結構 s 的維度大於 1-by-1, getfield 會傳回輸出值中的第一個值。也就是 s(m,n), getfield 將傳回 f = s(1,1).field。
f = getfield(s,{i,j},'field',{k})
將傳回所特定欄位的內容,相當於 f = s(i,j).field(k)。所有的下標必須像異質陣列般的傳遞,傳遞欄位的參考值也像字串般的傳遞。
Examples
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
如果想列出所有欄位的名稱(或其他),可以把 getfield 加入一個迴圈中,如下
for i = 1:2
name{i} = getfield(mystr,{i,1},'name');
end
name
name =
'alice' 'gertrude'
See Also
| getenv | getframe | ![]() |