call out matlab structure using for loop
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
AI-CHI Chang
am 9 Mär. 2022
Kommentiert: Stephen23
am 10 Mär. 2022
I have j structures Ts(j) . And the elements inside the structure are just like T(3) below
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/919959/image.png)
can I call out e1 e2 e3 by using for loop?
or I can only call they by using Ts(i).e1 Ts(i).e2 Ts(i).e3.
Because I need to check whether e1||e2||e3 third element is 1 or 2 , and now I have j structures.
If I can't use for loop ↓ ,then I ill have three " if "
for j=1:num_of_Ts
if Ts(j).e1(:,3)==1
do...
end
if Ts(j).e2(:,3)==1
do...
end
if Ts(j).e3(:,3)==1
do...
end
end
Akzeptierte Antwort
Max Alger-Meyer
am 9 Mär. 2022
You can absolutely use a loop! The trick is to use the 'fieldnames' function as shown below.
SampleStruct.e1 = [129 152 1];
SampleStruct.e2 = [129 164 2];
SampleStruct.e3 = [152 164 1];
names = fieldnames(SampleStruct);
for i = 1:numel(names)
disp(SampleStruct.(names{i}))
end
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Structures finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!