call out matlab structure using for loop

8 vues (au cours des 30 derniers jours)
AI-CHI Chang
AI-CHI Chang le 9 Mar 2022
Commenté : Stephen23 le 10 Mar 2022
I have j structures Ts(j) . And the elements inside the structure are just like T(3) below
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

Réponse acceptée

Max Alger-Meyer
Max Alger-Meyer le 9 Mar 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
129 152 1 129 164 2 152 164 1
  1 commentaire
AI-CHI Chang
AI-CHI Chang le 10 Mar 2022
Thanks!! I think this is absolutely what I want

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by