Determine average of results from a loop.
    2 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
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 Kommentare
Akzeptierte Antwort
  Jos (10584)
      
      
 am 25 Mai 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).
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

