2017-10-11 61 views
1

每个文件保存在一个循环我有一个名为作为modis1.hdf,modis2.hdf和modis3.hdf一个文件夹中的三个文件。我可以使用我的命令单独读取文件。如何使用MATLAB

for i=1:3 or for i=1 

lst_try=['D:\lst2016\lst_try\modis',num2str(i),'.hdf']; 

lst_3(:,:,:,:,i)=hdfread(lst_try, 'MODIS_Grid_Daily_1km_LST', 'Fields', 'LST_Day_1km', 'Box',{[76.83  77.34], [28.88  28.41]}); 

end 

我想分别以hdf格式或ascii格式保存每个文件。因此,我正在使用命令

save(lst_try,'lst_3','-hdf') 

但是无法单独保存文件。

回答

1

只是让个人的名字,每SAVEFILE。

如果我理解右,您有以矩阵维数分开的不同的数据。只需分开这些数据并单独保存。

%do whatever you need to do 

partname='myfile' 

for ii=1:3, 

    var_temp=lst_3(:,:,:,:,ii); %split the interesting part of you data. 

    name=[partname num2str(ii)]; %make a individual name 
    save(name,'var_temp','-ascii') %saving by separated names 

end 

注意我用了'-ascii'选项,为save function不采取HDF格式。这带有一个缺点,你只能保存尺寸为(N,M)的矩阵。

ascii选项不能拍摄3D数据。

+0

的问题是不如说他保存在一个变量的所有数据,并试图挽救这一次“单独” – Irreducible

+0

@Irreducible的确。我在想象分析是在同一个循环内完成的。我会做一个更正。 – Guto

+0

@Guto感谢您的帮助,但MATLAB是显示这个错误:MYFILE使用保存 未知的命令选项 错误。 Stackoverflow错误(第15行) save(name,'var_temp',' - hdf')%saving by separate names –