Connect correct temperature to another table based on time

3 次查看(过去 30 天)
I want to connect two tables with each other. I have one table A:
A = [13-aug-2020, 14-aug-2020, 15-aug-2020], [13.8, 12.2, 8.5];
B = [14-aug-2020, 14-aug-2020, 13-aug-2020], [155, 203, 200];
Now I want to combine those two tables with each other based on time like this:
B = [14-aug-2020, 14-aug-2020, 13-aug-2020], [155, 203, 200], [12.2, 12.2, 13.8];
Anyone who can help me with this?
I read the tables like this at the moment
clear all; close all; clc;
check = dir('*.xls');
list = [];
for i = 3
opts = spreadsheetImportOptions("NumVariables", 3);
% Specify sheet and range
opts.Sheet = "Sheet1";
opts.DataRange = "A2:C367";
% Specify column names and types
opts.VariableNames = ["Aug2020", "VarName2", "Temp"];
opts.VariableTypes = ["datetime", "double", "double"];
% Specify variable properties
opts = setvaropts(opts, "Aug2020", "InputFormat", "");
% Import the data
weatherYear = readtable("/Users/diontheunissen/Documents/Smart_Driver/RawData/weatherYear.xlsx", opts, "UseExcel", false);
Date = datetime(weatherYear.Aug2020);
weatherYear.Aug2020 = Date;
opts = spreadsheetImportOptions("NumVariables", 10);
% Specify sheet and range
opts.DataRange = "A2:J414";
% Specify column names and types
opts.VariableNames = ["UitgevoerdDoor", "Rapport", "ActiviteitType", "Lat", "Long", "Starttijd", "Duurms", "KilometerstandBegin", "GeredenAfstand", "TotaalVerbruik"];
opts.VariableTypes = ["categorical", "string", "string", "string", "string", "datetime", "double", "double", "double", "double"];
% Specify variable properties
opts = setvaropts(opts, "Rapport", "WhitespaceRule", "preserve");
opts = setvaropts(opts, ["UitgevoerdDoor", "Rapport", "ActiviteitType", "Lat", "Long"], "EmptyFieldRule", "auto");
opts = setvaropts(opts, "Starttijd", "InputFormat", "");
% Import the data
name = fullfile(check(i).folder, check(i).name);
Ritten = readtable(name, opts, "UseExcel", false);
Datum = datetime(Ritten.Starttijd);
Datum.Format = 'dd-MMM-yyy';
Ritten.Starttijd = Datum;
% pos=find(ismember(Datum,Date));
% for m = 1:length(Datum)
% for np = 1:length(Date)
% n = string(Datum(m));
% weatherYear.Temp(n)
% end
% end
end

采纳的回答

Peter Perkins
Peter Perkins 2021-8-5
Use timetables. It's a one-liner:
>> A = timetable(datetime(["13-aug-2020";"14-aug-2020";"15-aug-2020"]), [13.8; 12.2; 8.5])
A =
3×1 timetable
Time Var1
___________ ____
13-Aug-2020 13.8
14-Aug-2020 12.2
15-Aug-2020 8.5
>> B = timetable(datetime(["14-aug-2020";"14-aug-2020";"13-aug-2020"]), [155; 203; 200])
B =
3×1 timetable
Time Var1
___________ ____
14-Aug-2020 155
14-Aug-2020 203
13-Aug-2020 200
>> join(B,A)
ans =
3×2 timetable
Time Var1_B Var1_A
___________ ______ ______
14-Aug-2020 155 12.2
14-Aug-2020 203 12.2
13-Aug-2020 200 13.8

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Timetables 的更多信息

产品


版本

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by