我正在使用以下代码查看特定目录中的所有文件,并且我得到了一些奇怪的结果。该计划的目的是做以下事情:我正在查看2007年6月20日至2007年9月20日期间每天的大量(~7000 +).mat文件。我要做的是搜索每个文件夹并查看.mat文件等。但是,出于某种原因,我得到一个对我没有意义的0x1单元格。也许有一个训练有素的人可以理解为什么?
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单元?
如果有人可以提供帮助,我会非常感激。
答案 0 :(得分:1)
一些评论
您拥有的sprintf
行(tradeFolder=...
和quoteFolder=...
)在格式化字符串中有两个'%s'
,而只有一个参数:jDate
。这可能会导致未定义的行为。
最好使用fullfile
来连接路径和文件名。
虽然在此上下文中使用what
是正确的,但您可能需要使用dir( fullfile( tradeFolder, '*.mat' ) );