0

日付の配列 ['1/7/1993';'4/21/1993';'6/11/1993';'2/7/1994';'5/26/1994';'3/ 15/1995'] であり、最小および最大日付内のすべての月と年を含む形式 'mm/yyyy' の日付の配列に変換します。つまり、datr = ['1/1993';'2/ 1993';'1993 年 3 月';.......;'1995 年 3 月']

どうすればいいですか?また、どのように私は何を計算するのですか?Matlab の 2 つの日付の間の月数は?

4

1 に答える 1

5

まず、ここであまり多くのことを想定していないことを願っていますが、MATLAB には日付と時刻の操作が組み込まれているので、まだ使用していない場合は使用を開始する必要があります。

日付を表す方法は 3 つあります (ドキュメントからそのまま)。

Date String:           '24-Oct-2003 12:45:07'
Date Vector:           [2003  10  24  12  45  07]
Serial Date Number:    7.3188e+005

という関数がありdatevec、日付をこの Date Vector 形式に変換できる場合、2 つの日付間の月数を簡単に計算できます。

date1 = datevec('17-jun-04', 'dd-mmm-yy')
date2 = datevec('24-oct-03', 'dd-mmm-yy')

% This if/else checks which date is later than the other
if(datenum(date1) > datenum(date2))
    % num months is the number of months left in date2's year (ex. 2 months)+
    % the number of months in date1's year (ex. 6 months) +
    % the number of months in the years between (ex. 0 months).
    num_months = (12 - date2(2)) +  date1(2) + 12*(date1(1)-date2(1)-1)
else
    %just flipped date1 and date2 from the above.
    num_months = (12 - date1(2)) + date2(2) + 12*(date2(1)-date1(2)-1) 
end

上記のコードはdatenum、date1 が date2 より大きい (またはその逆) かどうかを確認するために使用します。

また、月と年だけを表示したい場合は、日付文字列の表示方法を次のように指定できます。datestr

>> date1

date1 =

        2004           6          17           0           0           0



>> datestr(date1,'mm/yyyy') %Displays just month and year

ans =

06/2004
于 2012-05-21T18:43:50.920 に答える