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

4 views (last 30 days)
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

Categories

Find more on Creating and Concatenating Matrices 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!