Determine average of results from a loop.
2 次查看(过去 30 天)
显示 更早的评论
Hi, I have a loop that outputs a 297x258x104 dataset that I have called 'info2'. I have stored these in 'info.table' using the below line ('it' has been previous defined in the loop as: it=1:5).
info.(['table' num2str(it)]) = info2;
Therefore I can now access each of the 297x258x104 from each iteration using 'info.table1', 'info.table2', etc...
I would now like to average all the results of info.table ((info.table1 + info.table2 + info.table3 + info.table4 + info.table 5)/5) to output one 297x258x104 dataset. Thanks.
0 个评论
采纳的回答
Jos (10584)
2016-5-25
This task becomes trivial when you use an array of structs rather than variable field names.
for it = 1:5
info2 = rand(2,3,2) % some calculation here
info(it).table = info2 ; % create array of structs
end
Big4DResultTable = cat(4,info(:).table)
MeanResultTable = mean(Big4DResultTable,4)
Pro-Tip: It is the contents of a variable (or field) that should change, not the name of the variable (or field).
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Characters and Strings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!