How do I split a MATLAB table into seperate tables by date?

11 views (last 30 days)
I have a table with a datatime and temperature column that I want to split into seperate tables based on date. For example, I want to split the below table into 3 sperate tables because there are 3 different days in the table.
Date Temperature
2022-05-21 12
2021-05-21 19
2022-05-21 24
2022-06-01 21
2022-06-01 22
2022-06-04 25
How do I do this?

Accepted Answer

Voss
Voss on 20 Jul 2022
Here's one way:
t = table( ...
{'2022-05-21';'2021-05-21';'2022-05-21';'2022-06-01';'2022-06-01';'2022-06-04'}, ...
[12;19;24;21;22;25], ...
'VariableNames',{'Date' 'Temperature'})
t = 6×2 table
Date Temperature ______________ ___________ {'2022-05-21'} 12 {'2021-05-21'} 19 {'2022-05-21'} 24 {'2022-06-01'} 21 {'2022-06-01'} 22 {'2022-06-04'} 25
[uu,~,jj] = unique(t.Date);
nuu = numel(uu);
c = cell(nuu,1);
for ii = 1:nuu
c{ii} = t(jj == ii,:);
end
c
c = 4×1 cell array
{1×2 table} {2×2 table} {2×2 table} {1×2 table}
c{:}
ans = 1×2 table
Date Temperature ______________ ___________ {'2021-05-21'} 19
ans = 2×2 table
Date Temperature ______________ ___________ {'2022-05-21'} 12 {'2022-05-21'} 24
ans = 2×2 table
Date Temperature ______________ ___________ {'2022-06-01'} 21 {'2022-06-01'} 22
ans = 1×2 table
Date Temperature ______________ ___________ {'2022-06-04'} 25
Looks like 4 different dates, but maybe the 2021 is a typo.

More Answers (1)

Walter Roberson
Walter Roberson on 21 Jul 2022
Thanks to @Voss for inputting the data.
t = table( ...
{'2022-05-21';'2021-05-21';'2022-05-21';'2022-06-01';'2022-06-01';'2022-06-04'}, ...
[12;19;24;21;22;25], ...
'VariableNames',{'Date' 'Temperature'})
t = 6×2 table
Date Temperature ______________ ___________ {'2022-05-21'} 12 {'2021-05-21'} 19 {'2022-05-21'} 24 {'2022-06-01'} 21 {'2022-06-01'} 22 {'2022-06-04'} 25
G = findgroups(t.Date);
c = splitapply(@(varargin) {table(varargin{:}, 'VariableNames', t.Properties.VariableNames)}, t, G);
c
c = 4×1 cell array
{1×2 table} {2×2 table} {2×2 table} {1×2 table}

Categories

Find more on Tables in Help Center and File Exchange

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!