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

23 visualizzazioni (ultimi 30 giorni)
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

Risposte (1)

Jorg Woehl
Jorg Woehl il 11 Mar 2021
Modificato: Jorg Woehl il 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

Categorie

Scopri di più su Tables in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by