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