Как конвертировать дату в число и обратно в MATLAB - PullRequest
6 голосов
/ 17 октября 2010

У меня есть дата 1/11/2010

и я использую функцию

= дата (год (A1), месяц (A1), день (A1))

для преобразования даты в число в 40189 с помощью Excel.

Можно ли использовать MATLAB для преобразования числа 40189 обратно в дату?

1 Ответ

11 голосов
/ 17 октября 2010

Использование DATESTR

>> datestr(40189)
ans =
12-Jan-0110

К сожалению, Excel начинает считать с 1 января 1900 года. Узнайте, как преобразовать серийные даты из Matlab в Excel, используя DATENUM

>> datenum(2010,1,11)
ans =
      734149
>> datenum(2010,1,11)-40189
ans =
      693960
>> datestr(40189+693960)
ans =
11-Jan-2010

Другими словами, чтобы преобразовать любую серийную дату в Excel, позвоните

datestr(excelSerialDate + 693960)

EDIT

Чтобы получить дату в формате мм / дд / гггг, наберите datestr с указанным форматом

excelSerialDate = 40189;
datestr(excelSerialDate + 693960,'mm/dd/yyyy')
ans =
01/11/2010

Кроме того, если вы хотите избавиться от ведущего нуля за месяц, вы можете использовать REGEXPREP , чтобы исправить ситуацию

excelSerialDate = 40189;
regexprep(datestr(excelSerialDate + 693960,'mm/dd/yyyy'),'^0','')
ans =
1/11/2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...