Re: [問題] 讀hdf檔案使用迴圈的問題

看板MATLAB作者 (慾望越大,硬碟越大)時間7年前 (2017/11/20 19:44), 7年前編輯推噓2(204)
留言6則, 2人參與, 7年前最新討論串2/2 (看更多)
感謝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 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 128.171.151.183 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1511178297.A.288.html ※ 編輯: Allen1096 (128.171.151.183), 11/20/2017 19:45:06

11/21 00:11, 7年前 , 1F
月份的部分你可以用num2str(i, '%02d')把1輸出成01,2變
11/21 00:11, 1F

11/21 00:12, 7年前 , 2F
成02
11/21 00:12, 2F

11/21 00:12, 7年前 , 3F
這樣i的迴圈就不用分段寫了
11/21 00:12, 3F

11/21 00:14, 7年前 , 4F
附帶一題,matlab裡面變數i的預設值是(-1)^0.5 ,跑迴圈
11/21 00:14, 4F

11/21 00:14, 7年前 , 5F
應該要避開 (我是都用ii jj之類的啦!
11/21 00:14, 5F

11/21 00:51, 7年前 , 6F
複數可用1i或1j來表示,還是習慣用i跑for
11/21 00:51, 6F
文章代碼(AID): #1Q4i0vA8 (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1Q4i0vA8 (MATLAB)