2016-07-22 4 views
-3

약 2400 개의 파일이 있습니다 (그 중 일부는 tsv이고 다른 것은 .txt 임). 나는 그들이 72x144 (그러나 나는 그들 모두를 점검하지 않았다)라고 들었다. 나는이 스크립트를 실행하면첨자 할당 차원 불일치 3

첨자 지정 치수 불일치 :

load area.mat %Area Calculation % 

%area= transpose(area); 

area= repmat(area,1,144); % replicating the vector area 144 times 

files= dir('200*'); % loading files of June 
for m=1:length(files) 
June(:,:,m)= dlmread(files(m).name); % loading files in a 3 dimensional %matrix 
end 


June(June<0)= NaN; % replacing outliers by Not a Number NaN 
outliers = isnan(June); % detect NaNs 

t= 1:numel(June); % creating a variable t which take values from 1 to number %of elements of matrix June 

June(outliers) = interp1(t(~outliers), June(~outliers), t(outliers),'nearest'); % interpolating NaNs by nearest values 
z= mean(June,3); % obtaining a matrix June that consists of averages of same cells 

June_temp= z.*area; % weighing temperatures by fractions of areas ??????? 
June_AvgTemp= sum(June_temp(:)); 
fprintf('The average temperature of June is %0.4f Kelvins, %0.4f degrees Celsius\n',June_AvgTemp,June_AvgTemp-273.15) 

을 나는 오류가 발생합니다.

오류 : almost_F_script (줄 16) 6 월 (:, :, m) = dlmread (파일 (m) .name); 3 차원 행렬에 파일 로딩하기

나는 정말로 당신의 도움에 감사 할 것입니다! 감사합니다.

+1

파일이 72x144가 아닙니다. – Suever

+0

답장을 보내 주셔서 감사합니다. 내 루프가 m = 969에 도달하면 오류 메시지가 나타나기 때문에 문제가되어야한다고 생각했습니다. 나는 그것이 약 12000 개의 파일을 가지고 있으며 그것이 1 년 동안 만 존재하기 때문에 그것이 유일한 파일이라고 생각하지 않는다. 나는 10 년 동안의 파일이 필요하기 때문에 더 많은 파일을 얻을 것이다. 그래서 루프 내에 다른 스크립트를 삽입하는 방법이 있습니다. 따라서 72x144 크기가없는 파일은 누락 된 값을 보간 할 수 있습니까? 그 동안 문제가있는 파일의 이름을 어떻게 얻을 수 있습니까? 이 경우 해당 m은 969입니다. 저를 도와 주셔서 감사합니다! –

+0

스크립트를 실행하기 전에'dbstop if error'를 호출하면 에러가 발생한 곳에서 바로 디버그 프롬프트를 표시하고 어떤 파일이 문제의 원인인지 조사 할 수 있습니다. 이유는 무엇입니까? – Suever

답변

-1

이 문제는 72x144 크기의 .TVS 파일과 1x10368 크기의 .txt 파일을 내 데이터 집합으로 사용했기 때문에 발생했습니다. 방금 .txt 파일과 동일한 데이터를 변환 한 다음 6 월 72x144 루프의 결과를 재구성했으며 모든 것이 잘 작동했습니다. 어쨌든 도움 주셔서 감사합니다!