看板 MATLAB 關於我們 聯絡資訊
感謝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
physbook: 月份的部分你可以用num2str(i, '%02d')把1輸出成01,2變 11/21 00:11
physbook: 成02 11/21 00:12
physbook: 這樣i的迴圈就不用分段寫了 11/21 00:12
physbook: 附帶一題,matlab裡面變數i的預設值是(-1)^0.5 ,跑迴圈 11/21 00:14
physbook: 應該要避開 (我是都用ii jj之類的啦! 11/21 00:14
sunev: 複數可用1i或1j來表示,還是習慣用i跑for 11/21 00:51