因为日期向量是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 - 3月- 0008”
.同时,datestr
将后面的五个元素转换为日期字符串。
当将这样的日期向量转换为字符向量时,首先使用datenum
.然后,使用。将日期号转换为字符向量datestr
:
Dn = datenum([3000 11 05 10 32 56]);ds = datestr(dn) ds = 05- 11 -3000 10:32:56
将日期转换为字符向量时,datestr
使用启发式规则将输入解释为日期向量或序列号日期。考虑一个m
6矩阵。datestr
将矩阵解释为m
向量日期:
前五列包含整数。
每一行的和的绝对值在1500-2500之间。
对于任何一行,如果其中一个条件为假,则datestr
解释了m
6矩阵为m
-by-6序列号日期。
通常,年份在1700-2300之间的日期被解释为日期向量。然而,datestr
可以将月、日、时、分或秒值超出正常范围的行解释为序号日期号。例如,datestr
正确解释了以下2014年的日期向量:
日期([2014 06 21 10 51 00])ans = 21- 6 -2014 10:51:00
但如果一天的数值超出了典型范围(1-31),datestr
返回vector中每个元素的日期:
datestr([2014 06 2110 10 51 50]) ans = 06- 7 -0005 06- 1 -0000 10- 10- 0005 10- 1 -0000 20-Feb-0000 00- 1 -0000
当你有一个由日期向量组成的矩阵datestr
可能不正确地解释为串行日期号,首先将矩阵转换为串行日期号使用datenum
.然后,用datestr
转换日期号。
当你有一个由连续日期号组成的矩阵datestr
可以解释为日期向量,首先将矩阵转换为列向量。然后,用datestr
转换列向量。