Save results data to a new table each loop iteration
20 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Mark Maders
le 3 Août 2021
Commenté : Mark Maders
le 3 Août 2021
The following loop generates a table (T_Departures) and saves 'Energy Calculation' data to this table. This overwrites every iteration however. I want to save the data to a new table each iteration (there are 30 iterations). When all iterations are complete, I wish to merge all results tables into one large table.
I have managed to save each result to file by using 'save' at the bottom of the loop, but I don't know how to then create a results table with the saved data. The load function either overwrites T_Departures with the saved data, or creating a new variable then loads the table into a struct. Any alternative methods or solutions to my current problem?
% set desired reg code search parameter
for i = 1:s
Aircraft = T_Reg(i,:);
Aircraft = table2cell(Aircraft);
Aircraft = Aircraft{1};
Aircraft = char(Aircraft);
% get flight data from table
Flights = contains(T_Data.Registration,Aircraft);
% return all rows for the flight data
T_Routes = T_Data(Flights,:);
% remove first row if movement type is 'D', else keep
if T_Routes.MovementType(1) == 'D'
T_Routes(1,:) = [];
end
% remove final row if movement type is 'A', else keep
if T_Routes.MovementType(end) == 'A'
T_Routes(end,:) = [];
end
% -------------------- Route On-Ground Time Calculation ------------------
% ------------------------------------------------------------------------
% Determine on ground time between each arrival and departure
OnGround = T_Routes.Date_Time(T_Routes.MovementType=='D') - T_Routes.Date_Time(T_Routes.MovementType=='A');
% New table with departure rows only
T_Departures = T_Routes(T_Routes.MovementType=='D',:);
OnGround = array2table(OnGround,'VariableNames',{'OnGroundTime'});
T_Departures = [T_Departures OnGround];
% ------------------------- Energy Calculation ---------------------------
% ------------------------------------------------------------------------
% % import fleet excel spreadsheet
T_Distance = readtable('Airport distances.xlsx',"TextType","string");
T_Distance.AirportIATA = erase(T_Distance.AirportIATA,"'");
T_Fuel = readtable('Aircraft Fuel Consumption.xlsx',"TextType","string");
% link distances and fuel spreadsheets to departures
T_Departures = join(T_Departures,T_Distance,"LeftKey","AirportIATA","RightKey","AirportIATA");
T_Departures = join(T_Departures,T_Fuel,"Keys","AircraftICAO");
T_Departures.kg_Fuel = T_Departures.Distance_km_.* T_Departures.kg_kmOfFuel;
% kWh per kg of kerosene
Kerosene = 12.67;
% efficiency of turboprop aircraft
PropEff = 0.5*0.98*0.8;
% efficiency of electric aircraft
AircraftEff = 0.98*0.95*0.98*0.8;
% energy requirement of aircraft
T_Departures.AircraftKWH = (Kerosene*PropEff*T_Departures.kg_Fuel)/AircraftEff;
save([Aircraft], 'T_Departures')
end
0 commentaires
Réponse acceptée
Walter Roberson
le 3 Août 2021
All_T_Departures = cell(s, 1);
for i = 1 : s
stuff
All_T_Departures{i} = T_Departures;
end
If you want, at this point
save(Aircraft, 'All_T_Departures')
If all of the tables have the same variables, then
All_T = vertcat(All_T_Departures{:});
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Guidance, Navigation, and Control (GNC) dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!