2016-07-07 2 views
0

타임 스탬프와 여러 개의 열 변수가있는 행렬이 있습니다. 매트릭스는 한 달 반 시간 단위 변수에 걸쳐 있습니다. 여기 매트릭스평균 비슷한 기간 MATLAB

11/11/2015 20:15 31.26410236 35.70104634 35.93171056 
11/11/2015 20:45 32.10746291 35.48806277 35.9647747 
. 
. 
. 
12/11/2015 20:15 32.10746291 35.48806277 35.9647747 
12/11/2015 20:45 32.10746291 35.48806277 35.9647747 
. 
. 
. 
13/11/2015 20:15 32.68310429 35.58753807 37.26447422 
13/11/2015 20:45 33.05141516 34.8432801 36.48033884 
. 
. 
. 
14/11/2015 20:15 32.08328579 34.66482668 34.65446868 
14/11/2015 20:45 32.19994433 34.40562145 34.34035989 

시간 분의 측면에서 동일한 시간의 평균을 찾을 수있는 가장 쉬운 방법은 무엇입니까의 네 기둥의 샘플입니다? 예. 매월 모든 일에 대한 시간 20:45의 각 변수의 평균입니다.

은 내가 datenum의 소수 부분에 의해 데이터를하는 datenum에 타임 스탬프를 변환 datenum의 소수 부분을 복용하고 정렬하여이를 달성 할 수 알고있다. 그 후 유사한 분수 인 datenum을 사용하여 평균 행을 차단할 수 있습니다. 더 효율적이고 우아한 방법이 있습니까? 당신이 밀리 초 또는 초 단위로 타임 스탬프로 변환하지 않고 날짜와 시간을 직접 작업 할 수 MATLAB으로

답변

0

:

:

http://es.mathworks.com/help/matlab/date-and-time-operations-1.html

또는 쉬운 방법은 날짜 벡터 like this에 날짜를 변환하는 것입니다

[Y,M,D,H,MN,S] = datevec(___) 

>> A = datevec('13/11/2015 20:45','dd/mm/yyyy HH:MM') 

A = 

     2015   11   13   20   45   0 

>> B = datevec('14/11/2015 20:45','dd/mm/yyyy HH:MM') 

B = 

     2015   11   14   20   45   0 
:
DateVector = datevec(DateString,formatIn) 

다음 원하는 열을 비교 이와

날짜를 비교하기 쉬운 :

>> A - B 

ans = 

    0  0 -1  0  0  0 

정확히 하루 차이

+0

감사합니다. 이 방법을 사용하여 n 일 차이가있는 값의 평균을 그룹화하고 찾을 수 있습니까? – Buzz

0

이 내가이 문제를 해결하는 일까지 있으므로 무엇 : 당신의 공헌에 대한

timestamp=linspace(datenum('2015-11-01 00:00', 'yyyy-mm-dd HH:MM'),datenum('2015-12-01 00:00', 'yyyy-mm-dd HH:MM'),1440); % 30 days 
timestamp=timestamp'; 
time_of_day=datetime(datevec(timestamp(1:48)),'Format','HH:mm'); 
numdays=30; 
data=rand(length(timestamp),2); 
means=NaN(48,3); 
for tt=1:48 
    means(tt,:)=[datenum(time_of_day(tt)) nanmean(data(tt:48:48*numdays,:),1)]; 
end 

    figure; 
    plot(time_of_day,means(:,2:3)); 
    xlim([timestamp(1) timestamp(48)]); 
관련 문제