ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

日付ベクトルの変換から予期しない出力が返される

日付ベクトルは 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 は次の 5 つの要素を日付文字列に変換します。

このような日付ベクトルを文字ベクトルに変換する場合は、まず、datenum を使用してシリアル日付値に変換します。次に、datestr を使用して日付値を文字ベクトルに変換します。

dn = datenum([3000 11 05 10 32 56]);
ds = datestr(dn)

ds =

05-Nov-3000 10:32:56

日付を文字ベクトルに変換する際、datestr はヒューリスティックな方法で入力値を日付ベクトルまたはシリアル日付値と解釈します。m 行 6 列の行列を考えます。datestr は、次の場合に行列を m 日付ベクトルと解釈します。

  • 最初の 5 列に整数が含まれている場合。

  • 各行の和の絶対値が 1500 ~ 2500 の範囲内にある場合。

任意の行でいずれかの条件が偽の場合、datestrm 行 6 列の行列を m 行 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 を使用して列ベクトルを変換します。