Too many files open error when using load and save. fclose('all') doesn't solve the problem
3 次查看(过去 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 中查找有关 Environment and Settings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!