(如果只有一个)的问题是在你导入数据到.mat文件。如果提供的文件我做
data =负载(“sc_8days.mat”);data =数据。sc8days;[nx、纽约、d] =大小(数据);显示亮度图像(数据(:,:1));
我得到这个废话:
和d = 23, MOD10C2数据只有四个乐队:Eight_Day_CMG_Snow_Cover, Eight_Day_CMG_Cloud_Obscured Eight_Day_CMG_Clear_Index, Snow_Spatial_QA(见产品规格)。
然而,如果我直接从.hdf加载数据和情节文件共享,
data = hdfread (“MOD10C2.A2000185.006.2016068190452.hdf”、“Eight_Day_CMG_Snow_Cover”);显示亮度图像(数据);
我得到:
这是有意义的和显示实际的数据。
因此,你将数据导入.mat文件事情搞乱。
这条线的误差
B2 (i, j,一24)=重塑(Eight_Day_CMG_Snow_Cover {i, j}, [1 3 2]);
因为你指定像素i, j使用数据从一个文件,每个文件的同时,应生成和错误,我不知道这段代码可以运行,像的大小Eight_Day_CMG_Snow_Cover Kx1,你正试图访问元素,j。
不管怎么说这样太繁琐,avoide重塑和使用细胞阵列通过导入:
hdfvars = {‘Eight_Day_CMG_Snow_Cover’,‘Eight_Day_CMG_Clear_Index’,……“Eight_Day_CMG_Cloud_Obscured”、“Snow_Spatial_QA '};测试管理扫描= ' E: \ \ hdf测试”;dinfo = dir (fullfile(管理扫描' * .hdf '));num_files =长度(dinfo);文件名= fullfile(管理扫描,{dinfo.name});Eight_Day_CMG_Snow_Cover = 0 (3600、7200、num_files);Eight_Day_CMG_Clear_Index = 0 (3600、7200、num_files);Eight_Day_CMG_Cloud_Obscured = 0 (3600、7200、num_files);Snow_Spatial_QA = 0 (3600、7200、num_files); for K = 1 : num_files this_file = filenames{K}; Eight_Day_CMG_Snow_Cover(:,:,K) = hdfread(this_file, hdfvars{1}); Eight_Day_CMG_Clear_Index(:,:,K) = hdfread(this_file, hdfvars{2}); Eight_Day_CMG_Cloud_Obscured(:,:,K) = hdfread(this_file, hdfvars{3}); Snow_Spatial_QA(:,:,K) = hdfread(this_file, hdfvars{4}); end
所以在这种情况下,变量Eight_Day_CMG_Snow_Cover包含你想把B2。