Using a for loop to access the correct fields in a struct

Hello Community,
I have a little query here (hopefully!) I am simply trying to ask the for loop to run through a struct ('Ss.') with various fields named pl1, pl2, pl3 etc. and work out the standard deviation for each field and assign to a new field named Ss.Sdpl for the same number of fields - 'i'.
for i = 1:N
Ss.Sdpl(i) = std(Ss.pl(i));
end
Unfortunately it returns the error: Reference to non-existent field 'pl', which of course I understand, but how should I write the syntax to run through Ss.pl 1, Ss.pl 2, Ss.pl 3 etc?
Any help would be much appreciated...
10B.

 採用された回答

Walter Roberson
Walter Roberson 2016 年 11 月 21 日

1 投票

Ss.Sdpl(i) = std(Ss.(sprintf('pl%d', i))) ;

1 件のコメント

10B
10B 2016 年 11 月 21 日
Excellent - many thanks Walter. I completely forgot about having to 'print' the field number. A great help.

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

製品

質問済み:

10B
2016 年 11 月 21 日

コメント済み:

10B
2016 年 11 月 21 日

Community Treasure Hunt

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

Start Hunting!

Translated by