Datestr() transforms the matrix of days
Show older comments
I have a matrix with the number of days converted using datenum(). Now I want to convert back to the original date, but the result is wrong.The code is as follows:
day=[737433;737445;737457;737469;737481;737493;737505]
value=datestr(day(1:7),'yyyymmdd');
value=str2num(value);
The execution result is:
value=[101;102;103;104;105;106;107];
actually the results should be
[20190108;20190120;20190201;20190213;20190225;20190309;20190321]
How should I solve this problem? Thank you
Answers (1)
Star Strider
on 9 Sep 2020
I cannot reproduce that. I get what the reults should be (in R2020a):
day=[737433;737445;737457;737469;737481;737493;737505];
value=datestr(day(1:7),'yyyymmdd')
value=str2num(value)
producing:
value =
7×8 char array
'20190108'
'20190120'
'20190201'
'20190213'
'20190225'
'20190309'
'20190321'
and:
value =
20190108
20190120
20190201
20190213
20190225
20190309
20190321
.
5 Comments
sun
on 9 Sep 2020
Walter Roberson
on 9 Sep 2020
It works for me in R2017a.
Note by the way that
>> char(101:107)
ans =
'efghijk'
Perhaps that might give you ideas as to where the results came from?
which -all str2num
Walter Roberson
on 9 Sep 2020
At the time that happens, please show us the content of day(1) and also show us
which -all datestr
Star Strider
on 9 Sep 2020
Walter — Thank you!
Categories
Find more on Time Series Objects in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!