Re: [问题] 读hdf档案使用循环的问题

楼主: Allen1096 (欲望越大,硬盘越大)   2017-11-20 19:44:54
感谢physbook大大
我不太会用matlab 所以就自己乱试 误打误撞试成功了
for j=3:9
for i=1:9
filename = ['Aqua_MODIS_200' num2str(j) '_0' num2str(i) '.hdf'];
a = 12*(j-3)+i
CF{a} = hdfread(filename,'Cloud_Fraction_Mean_Mean');
end
for i=10:12
filename = ['Aqua_MODIS_200' num2str(j) '_' num2str(i) '.hdf'];
a = 12*(j-3)+i
CF{a} = hdfread(filename,'Cloud_Fraction_Mean_Mean');
end
end
看起来是如果要维持原本的写法的话 要先定义filename
中括号的方式也可以
※ 引述《Allen1096 (欲望越大,硬盘越大)》之铭言:
: 嗨大家好
: 我有一堆.hdf档
: 档名为
: Aqua_MODIS_2003_01.hdf
: Aqua_MODIS_2003_02.hdf
: Aqua_MODIS_2003_03.hdf
: Aqua_MODIS_2003_04.hdf
: ...
: ..
: 我想用循环把他读出来 利用num2str来读取并存成每个不同的变量
: CF_2003_01
: CF_2003_02
: CF_2003_03
: ...
: ..
: 于是写了
: % Load file using hdfread
: for i=1:9
: i=1;
: ['CF_2003_0'num2str(i)] = hdfread('Aqua_MODIS_2003_0'num2str(i)'.hdf',
: 'Cloud_Fraction_Mean_Mean');
: end
: 结果我的2016版本的matlab一直告诉我 Unexpected MATLAB expression.
: 想请大家帮忙解惑,感谢QQ
作者: sunev (Veritas)   2017-11-21 00:51:00
复数可用1i或1j来表示,还是习惯用i跑for
作者: physbook (路克)   2017-11-21 00:11:00
月份的部分你可以用num2str(i, '%02d')把1输出成01,2变成02这样i的循环就不用分段写了附带一题,matlab里面变量i的默认值是(-1)^0.5 ,跑循环应该要避开 (我是都用ii jj之类的啦!

Links booklink

Contact Us: admin [ a t ] ucptt.com