how to join the values of different cells in different columns in one cell ?

2 views (last 30 days)
Is there a way that might allow me to combine several columns of a table in one column and put the values of their cells together in one cell. for example I have the table shown below, the first five columns are for the year, month, day, hour, minute. Would I be able to join them all together in one column such that the values would have such representation: 19961211720 where 1996 is the year, 12 is the month, 1 is the day , 17 is the hour and 20 is the minute.
anyone can help?

Accepted Answer

Walter Roberson
Walter Roberson on 20 Sep 2021
T.Date = datetime(T.Year, T.Month, T.Day, T.Hour, T.Min, 0, 'Format', 'uuuuMMddhhmm');
Note: I did not use the format you asked for. You asked for a single digit for the day, but I used two digits for the day. Even in the case where you might happen to know that only a single digit will ever be used, using a single digit is non-standard and makes things harder to understand all around.
  3 Comments
MA
MA on 20 Sep 2021
Is there any modification I can add to keep the hours in 24hr format not 12hr format? (i.e. to have for the HOUR value 17 instead of 05).
Walter Roberson
Walter Roberson on 20 Sep 2021
T.Date = datetime(T.Year, T.Month, T.Day, T.Hour, T.Min, 0, 'Format', 'uuuuMMddHHmm');

Sign in to comment.

More Answers (1)

Simon Chan
Simon Chan on 20 Sep 2021
Suppose you read the file using function readtable and the name of the table is T, then variable C in the following will give you the required format.
format longG
Ncol = 5;
A=table2array(T(:,1:Ncol));
B=compose(repmat('%d',1,Ncol),A);
C=str2double(B)

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!