如何使用matlab将每个文件保存在for循环中
How to save each file in a for loop using matlab
我在一个文件夹中有三个名为 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')
但无法单独保存文件。
只需为每个存档文件单独命名即可。
如果我没理解错的话,您是在矩阵维度中分隔了不同的数据。只是把这些数据分开,单独保存。
%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 数据。
我在一个文件夹中有三个名为 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')
但无法单独保存文件。
只需为每个存档文件单独命名即可。
如果我没理解错的话,您是在矩阵维度中分隔了不同的数据。只是把这些数据分开,单独保存。
%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 数据。