How to separate date and time into two tables?

2 ビュー (過去 30 日間)
LamaObecna
LamaObecna 2016 年 10 月 25 日
コメント済み: Steph 2019 年 2 月 17 日
Hi, i am new to Matlab. I have a problem with separating imported data of date and time over the year (8760 values) into two tables. Imported data looks like this. Its a cell of data in one column and i need to separate it to date in one table and time in second table.
'01/01 01:00:00'
'01/01 02:00:00'
'01/01 03:00:00'
.
.
'12/31 22:00:00'
'12/31 23:00:00'
'12/31 24:00:00'
Thank you for any help.

採用された回答

Jing Xie
Jing Xie 2016 年 10 月 25 日
Hi,
I hope the following piece of code may help you a little bit. I am not sure if the "table" in your question means the build-in func table in MATLAB. It is added at the end in case. The performance can be improved by using cellfun. As you are new to MATLAB, I guess the for loop structure may be more straightforward.
%%Params
input_cell={'01/01 01:00:00';
'01/01 02:00:00';
'01/01 03:00:00';
'12/31 22:00:00';
'12/31 23:00:00';
'12/31 24:00:00'};
%%Process
num_data_rows=numel(input_cell);
table_date_cell=cell(num_data_rows,1);
table_time_cell=table_date_cell;
for i=1:num_data_rows
cur_data_row=input_cell{i};
cur_date_time_cell=strsplit(cur_data_row);
table_date_cell(i)=cur_date_time_cell(1);
table_time_cell(i)=cur_date_time_cell(2);
end
%%Display
table(table_date_cell,'VariableNames',{'Date'})
table(table_time_cell,'VariableNames',{'Time'})
  6 件のコメント
LamaObecna
LamaObecna 2016 年 10 月 26 日
Yes, solved it. Is there a way how to rename name of this categorical column? Column in table right now has name "var1". I am trying to use different syntax of categorical (using Matlab HELP) to rename it, but with no success. E.g. table_date_cell column has name "Date".
Jing Xie
Jing Xie 2016 年 10 月 26 日
Hi,
You can make it in this way:
final_table = table(categorical(table_time_cell),categorical(table_date_cell),'VariableNames',{'Time','Date'})

サインインしてコメントする。

その他の回答 (1 件)

Marc Jakobi
Marc Jakobi 2016 年 10 月 25 日
編集済み: Marc Jakobi 2016 年 10 月 25 日
What format do you need the dates in? As strings? If not, I would recommend using datevec() to convert it to a matrix in the form:
[year, month, day, h, min, s]
so for example:
v = datevec(timestamp, 'mm/dd HH:MM:SS');
You can then separate v(1:3,:) (year, month & day) and v(4:6,:) (hours, minutes & seconds).
  3 件のコメント
Walter Roberson
Walter Roberson 2016 年 10 月 25 日
replace timestamp by the name of your variable that has the time strings.
Steph
Steph 2019 年 2 月 17 日
how do I extract date and time variables in 2 seperate columns from a datevector that is 6 by double?

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeDates and Time についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by