2017-10-11 63 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 –