0

我正在使用以下代码查看特定目录中的所有文件,并且得到了一些奇怪的结果。该程序的重​​点是执行以下操作:我正在查看 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 单元格?

如果有人可以提供帮助,我将不胜感激。

4

1 回答 1

1

几点评论

  1. sprintf您拥有 (tradeFolder=...quoteFolder=...) 的两行在'%s'格式化字符串中都有两行,而只有一个参数:jDate. 这可能会导致未定义的行为。

  2. 最好用于fullfile连接路径和文件名。

  3. 尽管what在这种情况下使用是正确的,但您可能需要使用dir( fullfile( tradeFolder, '*.mat' ) );

  4. 最好不要在 Matlab中使用iandj作为变量。

于 2013-03-03T06:55:32.677 回答