Поскольку вектор даты 1 6 вектор чисел, datestr
может интерпретировать ваши входные векторы даты как векторы последовательных чисел даты, или наоборот, и возвратить неожиданный вывод.
Рассмотрите вектор даты, который включает год 3000. Этот год вне области значений лет, которые datestr
интерпретирует как элементы векторов даты. Поэтому входной параметр интерпретирован как 1 6 вектор последовательных чисел даты:
datestr([3000 11 05 10 32 56]) ans = 18-Mar-0008 11-Jan-0000 05-Jan-0000 10-Jan-0000 01-Feb-0000 25-Feb-0000
Здесь datestr
интерпретирует 3000 как последовательный номер даты и преобразовывает его в строку даты '18-Mar-0008'
. Кроме того, datestr
преобразовывает следующие пять элементов в строки даты.
При преобразовании такого вектора даты в вектор символа сначала преобразуйте его в последовательный номер даты с помощью datenum
. Затем преобразуйте номер даты в вектор символа с помощью datestr
:
dn = datenum([3000 11 05 10 32 56]); ds = datestr(dn) ds = 05-Nov-3000 10:32:56
При преобразовании дат в векторы символов datestr
интерпретирует входной параметр или как векторы даты или как последовательные числа даты, использующие эвристическое правило. Считайте m
-by-6 матрицей. datestr
интерпретирует матрицу как векторы даты m
когда:
Первые пять столбцов содержат целые числа.
Абсолютное значение суммы каждой строки находится в области значений 1500–2500.
Если любое условие является ложным для какой-либо строки, то datestr
интерпретирует m
-by-6 матрица как m
-by-6 последовательные числа даты.
Обычно, даты с годами в области значений 1700–2300 интерпретированы как векторы даты. Однако datestr
может интерпретировать строки с месяцем, днем, часом, минутой или вторыми значениями вне их нормальных областей значений как последовательные числа даты. Например, datestr
правильно интерпретирует следующий вектор даты в течение года 2014:
datestr([2014 06 21 10 51 00]) ans = 21-Jun-2014 10:51:00
Но, учитывая дневное значение вне типичной области значений (1–31), datestr
возвращает дату каждого элемента вектора:
datestr([2014 06 2110 10 51 00]) ans = 06-Jul-0005 06-Jan-0000 10-Oct-0005 10-Jan-0000 20-Feb-0000 00-Jan-0000
Когда у вас есть матрица векторов даты, которые datestr
может интерпретировать неправильно как последовательные числа даты, сначала преобразовать матрицу в последовательные числа даты с помощью datenum
. Затем используйте datestr
, чтобы преобразовать числа даты.
Когда у вас есть матрица последовательных чисел даты, которые datestr
может интерпретировать как векторы даты, сначала преобразовать матрицу в вектор - столбец. Затем используйте datestr
, чтобы преобразовать вектор - столбец.