Iterating through struct fieldnames in MATLAB
Asked 07 September, 2021
Viewed 2.2K times
  • 52
Votes

My question is easily summarized as: "Why does the following not work?"

teststruct = struct('a',3,'b',5,'c',9)

fields = fieldnames(teststruct)

for i=1:numel(fields)
  fields(i)
  teststruct.(fields(i))
end

output:

ans = 'a'

??? Argument to dynamic structure reference must evaluate to a valid field name.

Especially since teststruct.('a') does work. And fields(i) prints out ans = 'a'.

I can't get my head around it.

4 Answer