How can I convert a datetime vector to cell??

hi all,
I have a vector of 4000 dates like:
25/07/1996;
26/07/1996;
29/07/1996;
30/07/1996;
31/07/1996;
01/08/1996;
02/08/1996;
05/08/1996;
06/08/1996;
07/08/1996;... and so on
Now, they are in datetime format. My goal is to insert the dates like rows names into a table. For example:
Age Height Weight BloodPressure
___ ______ ______ _____________
25/07/1996 38 71 176 124 93
26/07/1996 43 69 163 109 77
I know that the rows names of a table must be cell inputs. Thus, how can I do it? Thanks a lot!

 채택된 답변

Walter Roberson
Walter Roberson 2016년 11월 17일
편집: Walter Roberson 2016년 11월 17일

3 개 추천

Example:
YourTable = array2table((1:6).')
temp = cellstr( datestr(732430:732435) );
YourTable.Properties.RowNames = temp;

댓글 수: 3

Adriano
Adriano 2016년 11월 17일
편집: Adriano 2016년 11월 17일
It doesn`t work. Remeber, I need the rows names in the format dd/mm/yyyy and not a number!. Thanks.
YourTable = array2table((1:6).')
temp = cellstr( datestr(732430:732435, 'dd/mm/yyyy') );
YourTable.Properties.RowNames = temp;
I think you did not notice the datestr()
Adriano
Adriano 2016년 11월 17일
Great!!! Many thanks.

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Guillaume
Guillaume 2016년 11월 17일

0 개 추천

Rather than using obsolete datestr, simply convert the datetime with char (which will use the Format of the datetime:
array2table(somematrix, 'RowNames', cellstr(char(datetimevector)))
Note that R2016b introduces the timetable that makes this even simpler:
array2timetable(somematrix, 'RowTimes', datetimevector)

댓글 수: 1

You can even go directly to a cellstr, without char in the middle:
array2table(somematrix, 'RowNames', cellstr(datetimevector))

댓글을 달려면 로그인하십시오.

Peter Perkins
Peter Perkins 2016년 11월 18일

0 개 추천

Adriano, row names are really convenient when you want to use them for subscripting. But in this case, you need to consider that you are taking a datetime vector and turning it into text. So you lose all the calendar arithmetic that datetime provides, and you will no longer be able to do things like
T(T.Date > '1-Jan-2016',:)
that you would be able to do if you put the datetime vector into your table as a variable rather than as the row names. It depends on what you want to do.
As Guillaume pointed out, the new-for-R2016b timetable type kind of gives you the best of both worlds, a timetable's "row names" are actually row times, stored as either datetimes or durations.

카테고리

도움말 센터File Exchange에서 Data Type Conversion에 대해 자세히 알아보기

질문:

2016년 11월 17일

댓글:

2016년 11월 18일

Community Treasure Hunt

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

Start Hunting!

Translated by