Determine average of results from a loop.
    2 views (last 30 days)
  
       Show older comments
    
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 Comments
Accepted Answer
  Jos (10584)
      
      
 on 25 May 2016
        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).
More Answers (0)
See Also
Categories
				Find more on Loops and Conditional Statements in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
