How to use structure variable names in for loop

Hello,
I have a .mat file from a source containg structures with variable names as A,B,C etc.
I'm loading those to my workspace,creating a array for variable names and want to access the structures in a for loop. Error Dot indexing is not supported for variables of this type.
----------------------------------------------------------------------------
Structure names={'A','B','C'}
for i=1:3
output= Structure names(i).fieldname
end

5 Comments

What is your struct named? The below code shows how you can loop through each field in a struct called S:
names = fieldnames(S);
for i = 1:numel(names)
disp(S.(names{i}))
end
I have "n" structures, each with unique names. I want to access a particular fieldname in each structure. So I thought creating a array with unique structure names= {'A','B'.....'n'} and then
for i=1:n
output= structure names {i}.fieldname
but this is not possible since structure names {i} returns a character 'A'
Oh I see. Instead of storing the names of the structures in a cell array, can you store the structures themselves?
Structure={A,B,C,..,n};
for i=1:numel(Structure)
output= Structure{i}.fieldname;
end
Great that works!! Thanks
Fantastic! Trying to break a habit of answering questions in the comments...

Sign in to comment.

 Accepted Answer

Loop through the structures instead of their names:
Structure={A,B,C,..,n};
for i=1:numel(Structure)
output= Structure{i}.fieldname;
end

More Answers (0)

Categories

Asked:

on 28 Apr 2020

Commented:

on 28 Apr 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!