2013-03-03 50 views
0

我正在使用下面的代碼來查看特定目錄中的所有文件,並且我得到了一些奇怪的結果。該計劃的重點在於:從2007年6月20日至9日至20日期間,我正在瀏覽大量(〜7000多個).mat文件。我期望做的是通過這些文件夾中的每一個進行搜索並查看.mat文件等。但是,出於某種原因,我得到的0x1單元對我來說沒有意義。也許有人訓練有素的眼睛可以看到爲什麼?爲什麼我會得到一個0x1單元格? Matlab什麼函數

jDate = strtok(dates(j).name, '.'); % Or dates(j,1).name 

tradeFolder = sprintf('TAQ Data\\trades unzipped\\%s.tar\\%s\\', jDate);  
tradeFiles = what(tradeFolder); 
tradeMat = tradeFiles.mat; 

quoteFolder = sprintf('TAQ Data\\quotes unzipped\\%s.tar\\%s\\', jDate); 
quoteFiles = what(quoteFolder); 
quoteMat = quoteFiles.mat; 

(我已經排除了文件路徑的起點,因爲它包含了我的名字)。無論如何,數據如何保存是這樣的:我提取了每一天的數據並將其保存到上面列出的文件夾中。例如,解壓縮的內部交易將是一個文件夾20070620.tar,並且該文件夾內將是另一個名爲20070620的文件夾,並且該文件夾內有超過7000個.mat文件。所以....我怎麼得到tradeFiles.mat的0x1單元?

如果有人可以幫助,我會非常感激。

回答

1

幾點意見

  1. 兩個sprintf線你有(tradeFolder=...quoteFolder=...)具有格式化字符串兩個'%s',而只有一個參數:jDate。這可能會導致未定義的行爲。

  2. 最好使用fullfile連接路徑和文件名。

  3. 雖然在這種情況下使用what是正確的,你可能想使用dir(fullfile(tradeFolder, '*.mat'));

  4. 最好是not to use i and j as variables in Matlab仔細檢查它。

+0

嘿謝謝。事實證明,第一點是它。我的邏輯是我希望'%s'都是jDate,所以我只用了一次。但那是錯誤的地方。我使用了兩次jDate,現在它完全符合我的預期。感謝您看看它。 :) – 2013-03-03 07:17:24

相關問題