2013-03-03 91 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

相关问题