MATLAB Answers

How to output a for loop as a table with each iteration and result displayed

5 views (last 30 days)
Jorge Manuel Ayala
Jorge Manuel Ayala on 11 Mar 2021
Edited: Jorg Woehl on 11 Mar 2021
I have several tables called D2018, D2016,D2014...
For the example i will just use 2018 and 2019
I need a table with the mean of a variable ING for each year. Ive made a for loop:
list = ["2018", "2019"]
for i= list
file=strcat("D",i);
mean=varfun(@nanmean,eval(file),'InputVariables','ING')
year = str2double(i);
table(year,mean)
end
I dont know how to get each loop reasult in one table. I mean:
2018 mean2018
2019 mean2019
.
.
.
thanks

Answers (1)

Jorg Woehl
Jorg Woehl on 11 Mar 2021
Edited: Jorg Woehl on 11 Mar 2021
Hi Jorge,
First preallocate your table (outside the loop) according to the number of years in your list:
T = table('Size', [numel(list),2],...
'VariableTypes', {'double','double'},...
'VariableNames', {'year','mean'});
Inside the loop, use the following command to fill the table:
T(i,:) = {year, mean};
This will result in something like this (using rand numbers for the mean):
T =
4×2 table
year mean
____ _______
2018 0.48976
2019 0.44559
2020 0.64631
2021 0.70936

Community Treasure Hunt

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

Start Hunting!