2014-06-05 2 views
-3

변수에 대해 netcdf 파일에서 5 년간의 데이터를 가져 와서 연간주기를 만들려고합니다. 그래서 5 명의 Jans를 모두 잡고 평균을 내고, 2 월 5 일 모두를 가지고 평균을 내고, 등고선 그래프에 그려보세요. 나는 코드를 시작하고있다. (나는 계속 진행하기 전에 이것을 얻고 싶다) 다음과 같은 에러 메시지를 받는다 : A (:) = B에서 A와 B의 원소의 수는 반드시 같은.연간주기를 계산하려고합니다.

제 질문은, 더 좋은 방법이 있습니까?

미리 도움을 주셔서 감사합니다. 나는 초보자입니다. 그래서 이것이 간단한 질문 일 수 있습니다.

ncid = netcdf.open('example.nc','NC_NOWRITE'); 
PS1 = netcdf.getVar(ncid,netcdf.inqVarID(ncid, 'ps'), 'single'); 

for i = 1:12 
    MonthlyPS1(i) = PS1(month==i);   
end 

해야 나중에 평균을 계산할 수 있습니다 매달, 쓰레기통에 덤프 데이터. PS1 경우

+4

'size (PS1)'을 (를) 반환하는 것은 무엇입니까? 'size (month)'를 반환하는 것은 무엇입니까? –

+0

Lauren : @ CST-Link에서 질문을 한 후 9 분 후에 질문을했습니다. 이제 1 시간이 지났지 만 아직 응답하지 않았습니다. 귀하의 정보를 위해 : 질문은 답변 할 수 없습니다. 나는 당신에게 질문을 한 후에 그것을 붙잡는 것이 일반적 규칙으로 삼을 것을 권고합니다. 사람들은 오직 한가지 이유 때문에 여기에 있습니다 : 다른 사람들을 돕기. 당신이 질문을하는 사람이되고 응답을하지 않는다면 사람들은 그 질문을 슬퍼하고 투표를 종료 할 것입니다. 그냥 헤즈 업! 너는 도울 사람들을 멀리 할 것이다! –

+0

고마워요, @ RobertP. - 나는 새로운 사용자입니다. 진심으로 조언에 감사드립니다. – Lauren5

답변

0

나는 해결책을 쓰려고 노력할 것이지만, 나는 그것이 네가 필요로하는 것이 확실하지 않다. (내 대답과 관련된 추측이있다.)

또한 Matlab-idiomatic 코드로 작성하지는 않지만 명시 적 루프 및 계산; 이렇게하면 원하는 것이거나 그렇지 않으면 쉽게 볼 수 있습니다.

% allocate space for monthly mean values 
PS1_mean = zeros(size(PS1,1), size(PS1,2), 12) 

for d = 1:size(PS1,3) 
    % calculate the month for date d 
    m = mod(d, 12); 
    if m == 0 
     m = 12; 
    end; 

    % cumulate the data 
    PS1_mean(:, :, m) = PS1_mean(:, :, m) + PS1(:, :, d); 
end; 

% calculate the mean value 
% (this might be tricky for incomplete years) 
n_years = fix(size(PS1,3)/12); 
PS1_mean = PS1_mean/n_years; 

3 월에 시도해보십시오.

mesh(PS1_mean(:,:,3)); 

다시 한 번 알려 드리겠습니다.

2

다음, 실수로 5 바이 12 어레이이다

MonthlyPS1 = mean(PS1, 2); 

:

MonthlyPS1 = mean(PS1); 

PS1하면 다음 실제 숫자 12에 의해-5 인 PS1 후 실제 숫자 60에 의해 1 배열 인 경우 :

MonthlyPS1 = mean(reshape(PS1, 12, 5), 2); 

PS1 경우는 아니다 실수의 배열 일 경우 CST-Link에서 요청한대로 PS1이 무엇인지 설명해야합니다. 또한 변수 month이 무엇인지 명확하지 않습니다.

+0

고마워요. 당신이하고있는 일을 볼 수 있으며, 나중에 내 코드에서 유용 할 것입니다. 당신 말이 맞습니다. 저는 CST-Link의 요청에 따라 더 많은 정보를 제공해야했습니다. 그러나 나는 너의 시간을 정말로 바란다. – Lauren5

관련 문제