Too many files open error when using load and save. fclose('all') doesn't solve the problem
2 ビュー (過去 30 日間)
古いコメントを表示
My code looks like this
sourcedir = 'C:\exampleDirectory\';
for i = 1:N
exampleFilename = [sourcedir, num2str(i),'.mat'];
structMatrix = load(exampleFilename);
exampleMatrix = structMatrix.savedMatrix;
% do something on exampleMatrix
fclose('all');
end
I have tried sticking an fclose('all') on both ends yet it inevitably runs into:
Error using load
Unable to read file 'exampleFilename'.
Too many files open.
same happens with a similar save function. I tried running it in for loop instead of parfor, the problem persists. I can restart matlab and the problem goes away for a while, only to return when the open file number hits the limit. It is likely happening from load and save functions, but I can't see the code of load and save functions, neither do they output fid for me to close specifically.
Thank you,
2 件のコメント
Walter Roberson
2019 年 1 月 30 日
I suggest you try https://docs.microsoft.com/en-ca/sysinternals/downloads/process-explorer to monitor which files are being opened. You would then be able to tell whether it is the load() calls.
回答 (1 件)
Andreas Kvalbein Fjetland
2019 年 1 月 30 日
Try usinng the clear command instead of fclose. This worked in my test here.
clear('structMatrix')
2 件のコメント
Walter Roberson
2019 年 2 月 15 日
process-explorer that I mentioned would permit you to find out more about what is being opened.
参考
カテゴリ
Help Center および File Exchange で Interactive Control and Callbacks についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!