2016-07-22 136 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) 

我得到的错误:

下标的转让尺寸不匹配。

near_F_script(第16行)的错误 June(:,:,m)= dlmread(files(m).name);在三维矩阵中加载文件的百分比

我真的很感谢你的帮助!谢谢

+1

你有一个不是72 x 144的文件。 – Suever

+0

谢谢你的回答。我认为这一定是问题,因为当我的循环达到m = 969时,它给了我那个错误信息。我不认为这将是唯一的文件,因为我有大约12000个文件,而且只有一年。我将获得更多文件,因为我需要10年的文件。那么是否有方法可以在该循环中插入另一个脚本,以便每当一个文件不具有72x144尺寸时,它会插入缺失值?同时我怎么才能得到有问题的文件的名称?在这种情况下,相应的m是969.谢谢你帮助我! –

+0

我只是在运行脚本之前调用'dbstop if error',然后它会将调试提示放置在发生错误的位置,您可以调查哪个文件导致问题,以及为什么 – Suever

回答

-1

这个问题是由于我使用72x144的.TVS文件和1x10368作为我的数据集的.txt文件。我只是将相同的数据转换为.txt文件,然后我将6月的循环结果重新设置为72x144,并且一切正常。无论如何,谢谢你的帮助!