2012-05-21 3 views
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 ';'3/1995 ']Matlab의 월

어떻게해야합니까? 또한 어떻게 계산합니까? Matlab에서 두 날짜 사이의 개월?

답변

5

먼저 여기 너무 많이 추측하지는 않았지만 MATLAB에 Date and Time Operations이 내장되어 있습니다. 아직 사용하지 않으면 사용을 시작해야합니다.

이 날짜를 표현하는 방법은 세 가지가

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

datevec라는 기능이 있습니다 (해당 문서에서 같은 직선)이며,이 날짜 벡터 형식으로 날짜를 얻을 수 있다면 그때는 계산이 용이 두 날짜 사이의 개월 수 :

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 

위의 코드는 날짜 1이 날짜 2 (또는 그 반대)보다 큰 경우 확인 datenum를 사용

또한 월 및 연도 만 표시하려는 경우 datestr

>> date1 

date1 = 

     2004   6   17   0   0   0 



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

ans = 

06/2004 
과 함께 날짜 문자열을 표시하는 방법을 지정할 수 있습니다