Matlab批量讀取一個檔案夾裡的檔案
Matlab批量讀取一個檔案夾裡的txt檔案 瀏覽次數:1101次
懸賞分:10 | 解決時間:2010-8-11 22:26
| 提問者:cloned
| 檢舉
現在有一個檔案夾 裡面有50個左右的txt檔案 每個檔案大概三萬行 兩列 第一列是字串 第二列是浮點數字我只需要讀第二列現在我想寫一個.M檔案 批量讀取這個檔案夾裡的txt檔案 讀取完以後的陣列變數名就是txt的檔案名稱現在問題:1 MATLAB如何遍曆一個檔案夾裡的所有函數2 如果按照檔案名稱建立一個變數?
最佳答案
比如說在E:\new下有一系列txt檔案,檔案名稱符合matlab變數名的命名規則,並且沒有temp.txt檔案,每個檔案有兩列,以空格分割,第一列是字串,第二列是浮點數字,要讀取第二列的浮點數字為數組並以檔案名稱為變數名。file=dir('E:\new\*.txt');for n=1:length(file) temp=dlmread(['E:\new\',file(n).name],' ',0,1); eval()end
1.Matlab使用dir函數獲得指定檔案夾下的所有子檔案夾和檔案,並存放在在一種為檔案結構體數組中.dir函數可以有調用方式dir('.') 列出目前的目錄下所有子檔案夾和檔案dir('G:\Matlab') 列出指定目錄下所有子檔案夾和檔案dir('*.m') 列出目前的目錄下符合Regex的檔案夾和檔案得到的為結構體數組每個元素都是如下形式的結構體 name -- filename date -- modification date bytes -- number of bytes allocated to the file isdir -- 1 if name is a directory and 0 if not datenum -- modification date as a MATLAB serial date number分別為檔案名稱,修改日期,大小,是否為目錄,Matlab特定的修改日期可以提取出檔案名稱以作讀取和儲存用.2.我想不到什麼好方法,一般也就是使用一個統一的臨時變數來讀取檔案資料,比如tmp,然後用一個字串變數儲存的變數名,比如str='a1'要實現a1=tmp這樣的語句,可以採用如下語句str_a1=[str,'=tmp'];eval(str_a1);這樣a1這個變數便出現在workspace中但是問題是你並不知道那個變數名字叫a1啊?或者說我還找不到利用字串值對變數定址的方法,只能使用與上述過程相反的過程將值匯入到一個知道名字的變數中,如tmp.有興趣的話可以探討一下.