call out matlab structure using for loop

6 ビュー (過去 30 日間)
AI-CHI Chang
AI-CHI Chang 2022 年 3 月 9 日
コメント済み: Stephen23 2022 年 3 月 10 日
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

採用された回答

Max Alger-Meyer
Max Alger-Meyer 2022 年 3 月 9 日
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 件のコメント
AI-CHI Chang
AI-CHI Chang 2022 年 3 月 10 日
Thanks!! I think this is absolutely what I want

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by