datenum problem in matlab
조회 수: 4 (최근 30일)
이전 댓글 표시
Hi,
I have a problem in a Matlab code. I import dates from excel, then Matlab "reads" them with datestr, but after that, when Matlab convert them to numbers with datenum I have problem. The format of dates are 01/01/2012. When a day of a date is from 13 of a month till the end of the month Matlab read the day as 06/03/0021 or 06/04/0034. From 1st of a motnh till 12 of the month a have no problem because it convert the days to numbers correct..
When I run the code without importing dates from excel, I put them manually on editor I don't have any problem..
Please help me!
댓글 수: 0
채택된 답변
Pedro Villena
2012년 11월 7일
편집: Pedro Villena
2012년 11월 7일
str = '01/01/2012'; %%string of the date, read from XLS file
First, you have to specify the date format that you have in your XLS file ( Control Panel >> Regional Configuration ).
format = 'dd/mm/yyyy';
or
format = 'mm/dd/yyyy';
Then, you could convert the date to number, and the number to date, without mistakes
str = '01/01/2012'; %%string of the date, read from XLS file
n = datenum(str,format);
s = datestr(n,format); %%s must be the equal to str
댓글 수: 0
추가 답변 (2개)
Titus Edelhofer
2012년 11월 7일
Hi,
my guess is that your data is of the form dd/mm/yyyy, so first the day, then month, then year. But if you omit the date format when calling datenum, datenum guesses your data to be of American format (month first, so mm/dd/yyyy). That's why the first 12 will work (but give again guessing a wrong number!). To make the long story short, use the specific date format string as Pedro suggested.
Titus
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Dates and Time에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!