How do I loop through a structure field which contains multiple arrays?
2 ビュー (過去 30 日間)
古いコメントを表示
Inti Vanmechelen
2019 年 1 月 4 日
コメント済み: Inti Vanmechelen
2019 年 1 月 4 日
Hi all,
I have a big structure which contains different substructures.
The structure is called 'subjects' and contains information for each subject.
However, I am interested in angles, which are located in subjects.sessions.trials(1).data.angles.
subjects.sessions.trials(1).data.angles contains 28 fields, all being a 1289x1 double, which all have names of different angles.
I want to plot the 28 angles by looping through, but I cannot manage to select what I need in the for loop:
for i = 1:NSessions
figure();
plot(subjects.sessions.trials(i).data.angles. ......);
end
Attached is a snapshot of what the structure field looks like.
I tried creating a cell array with the 28 names and then use
for i = 1:NSessions
for k = 1:NAngleName
figure();
plot(subjects.sessions.trials(i).data.angles.AngleName{k});
end
end
But this is not working.
Thanks in advance.
2 件のコメント
採用された回答
Daniele Mascali
2019 年 1 月 4 日
If you want to make your last attempt work, you might use eval:
eval(['plot(subjects.sessions.trials(i).data.angles.',AngleName{k},');']);
3 件のコメント
Daniele Mascali
2019 年 1 月 4 日
You are right.
However, I was not aware of Dynamic Field References. One very simple solution is
plot(subjects.sessions.trials(i).data.angles.(AngleName{k}));
Thanks for the link!!
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!