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

14 vues (au cours des 30 derniers jours)
Bhavishey Thapar
Bhavishey Thapar le 20 Juil 2022
Commenté : Voss le 25 Juil 2022
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?

Réponse acceptée

Voss
Voss le 20 Juil 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.
  2 commentaires
Bhavishey Thapar
Bhavishey Thapar le 25 Juil 2022
Thank you.
Voss
Voss le 25 Juil 2022
You're welcome!

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 21 Juil 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}

Catégories

En savoir plus sur Tables dans Help Center et File Exchange

Produits


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by