0

次のコードを使用して、特定のディレクトリ内のすべてのファイルを調べていますが、奇妙な結果が得られます。このプログラムのポイントは次のことです。2007 年 6 月 20 日から 9 月 20 日までの 1 日につき、膨大な数 (~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'、フォーマットされた文字列に 2 つの引数がありますが、引数は 1 つだけです: jDate. これにより、未定義の動作が発生する可能性があります。

  2. fullfileパスとファイル名を連結するために使用することをお勧めします。

  3. このコンテキストでの使用whatは正しいですが、使用して再確認することをお勧めします。dir( fullfile( tradeFolder, '*.mat' ) );

  4. andを Matlab の変数として使用しないことijをお勧めします。

于 2013-03-03T06:55:32.677 に答える