2017-11-02 15 views
-1

Matlab에서 GPH 이상 계산에 관심이 있습니다. lat, lon 및 data의 3D 매트릭스가 있습니다. 데이터 (3 차원)는 32 년 동안 1 일 단위로 간격을 둔 일일 GPH 값입니다 (1979 년 1 월 1 일부터 2011 년 1 월 1 일까지). 행렬은 95x38x11689입니다. 행렬이 3D 일 때 매일 데이터의 일년 평균을 계산하려면 어떻게해야합니까?Matlab에서 여러 해 동안 같은 날의 데이터에 대한 3D 행렬의 평균을 계산하는 방법은 무엇입니까?

즉, 모든 1 월 1 일의 평균을 계산하여 1979-2010 년 모든 1 월 1 일의 기후 학적 평균을 계산하는 방법 (시간 정보가없는 GPH 값 매일)? 그리고 이후 매일 매일. 데이터에는 윤년도 포함됩니다. 어떻게 처리할까요?

예 : 색인 1, 365, 730 등의 모든 1 월 1 일 GPH 값을 정렬하고 동일한 방식으로 모든 연도의 각 날을 평균화합니다.

+0

이것은 이미 제가 응답 한 사본이 아닙니다. –

+0

가능한 [Matlab의 지오 전위차 변이를 계산하는 방법] (https://stackoverflow.com/questions/47065739/how-to-calculate-anomalies-of-geopotential-height-in-matlab) –

답변

2

최초의 요즘은 데이터의 중간에 있고 매년에 나타나지 때문에, 모든 2 월 29 일을 가지고 가고, 평균 귀찮게하자

Feb29=60+365*[1:4:32]; 
mean_Feb29=mean(GPH(:,:,Feb29),3); % A matrix of 95x38 with the mean of all February 29th 

GPH(:,:,Feb29)=[];   % omit Feb 29th from the data 
Last_Jan_1=GPH(:,:,end);  % for Jan 1st you have additional data set, of year 2011 
GPH(:,:,end)=[];   % omit Jan 1st 2011 

re_GPH=reshape(GPH,95,38,365,[]); 
av_GPH=mean(re_GPH,4);  
이제

re_GPH는 95x38x365의 행렬이다 3 차원의 각 슬라이스는 1 월 1 일 시작하는 연중 무휴입니다.

지난 1 월 1 일 (2011 년 1 월)을 포함 시키려면 이전 줄 다음에이 줄을 실행하십시오. 코드 :

av_GPH(:,:,1)=mean(cat(3,av_GPH(:,:,1),Last_Jan_1),3); 
예를 들어, 지금

t1 = datetime(2011,1,1,'format','MMMMd') 
t2 = datetime(2011,12,31,'format','MMMMd') 
t3=t1:t2; 

: 수 이하는 각 날짜에 해당 슬라이스 알의 편의를 위해

, 당신은 올해 모든 날짜의 배열을 할 수 있도록

t3(156)= 

    datetime 

    June5 

av_GPH(:,:,156) 6 월 5 일의 평균입니다. 귀하의 코멘트를 들어


, 당신이 평균에서 하루를 빼려면 :

sub_GPH=GPH-repmat(av_GPH,1,1,32); 

그리고 월 29 일에 대한

, 당신이해야 할 것이다 당신은 (데이터에서 3 호선을 삭제하기 전에 그곳에) :

sub_GPH_Feb_29=GPH(:,:,Feb29)-repmat(mean_Feb29,1,1,8); 
+0

이 가능한 작업 ! 하지만 이제는 GPH (현재 95x38x11680)와 'av_GPH'(지금은 95x38x365)의 차이점을 어떻게 알 수 있습니까? 나는 'av_GPH'에 해당 avg GPH가있는 'GPH'(32 년 동안)에서 매일 빼기를 원합니다. – user3052817

+0

답을 편집하여 편집하십시오. – Adiel

+0

이 진술로 무엇을 의미합니까? 나는 2 월 29 일 윤년을 제거했다. 그리고 2 월 28 일에 데이터에서 데이터를 삭제하기 전에이 작업을 수행해야합니다 (라인 3까지). sub_GPH_Feb_29 = GPH (:, :, Feb29) -repmat (평균 _Feb29,1,1,8); – user3052817