如何使用matlab在for循环中保存每个文件

时间:2017-10-11 10:16:46

标签: matlab loops save multiple-files hdf

我在一个文件夹中有三个名为modis1.hdf,modis2.hdf和modis3.hdf的文件。我可以使用我的命令单独读取文件。

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 个答案:

答案 0 :(得分:1)

为每个保存文件创建单独的名称。

如果我理解正确,您将在矩阵维度中分离不同的数据。只需将这些数据分开并单独保存即可。

%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数据。