MATLAB Answers

Martin
0

sum of timetables for each months

Asked by Martin
on 10 Sep 2019
Latest activity Commented on by Martin
on 11 Sep 2019
I got 2 timetables buses and cars like below. Does anyone know how to achieve the last table which sum each months?
buses =
2×2 timetable
Time Buses diesel
________ ________ ________
Aug-2019 5 890
Sep-2019 8 910
cars =
2×2 timetable
Time cars petrol
________ ________ ________
Aug-2019 10 45
Sep-2019 80 50
totalvehicles =
2×2 timetable
Time vehicles fuel
________ ________ ________
Aug-2019 15 1035
Sep-2019 88 960

  0 Comments

Sign in to comment.

Products

2 Answers

Answer by Andrei Bobrov
on 10 Sep 2019
 Accepted Answer

Buses = [5;8];
cars = [10;18];
Time = datetime(2019,[8;9],1);
buses = timetable(Time,Buses);
cars = timetable(Time,cars);
T = [cars,buses];
totalvehicles = rowfun(@(x,y)x + y,T,'OutputVariableNames','vehicles');

  2 Comments

Martin
on 10 Sep 2019
Thanks, the problem however arise if there are more columns in the tables. I were looking for a more general idea. I update my topic
Martin
on 11 Sep 2019
thanks, Andrei!

Sign in to comment.


dpb
Answer by dpb
on 10 Sep 2019

totalvehicles=retime([buses;cars],'monthly',@sum);

  2 Comments

Martin
on 10 Sep 2019
That wont work with different variables names
dpb
on 11 Sep 2019
So, fix the variables names...
bus.Properties.VariableNames={'vehicles','fuel'};
car.Properties.VariableNames={'vehicles','fuel'};
>> retime([bus;car],'monthly',@sum)
ans =
2×2 timetable
Time vehicles fuel
___________ ________ ____
01-Aug-2019 15 935
01-Sep-2019 88 960
>>

Sign in to comment.