【发布时间】:2016-03-10 15:45:53
【问题描述】:
如果我运行下面的示例代码,我会在 Matlab 中得到一个无效的文件标识符错误:
for i = 1:99999
fid = fopen('test.txt','w');
fprintf(fid,'%s', 'Hello World!\r\n');
fclose(fid);
delete('test.txt');
end;
???使用 ==> fprintf 时出错 文件标识符无效。使用 fopen 生成有效的文件标识符。
有趣的是,如果我减少循环次数,我不会得到错误。我研究了这个问题,似乎导致error(错误的文件路径、损坏的文件、文件不存在、文件已在使用)的常见问题都不是罪魁祸首,因为如果我更改循环到 10 而不是 99999。
经过进一步研究,Matlab Forum Post,似乎问题可能与配额有关(我认为配额与操作系统有关,在我的情况下,Windows 10 不允许程序在某个特定时间后写入文件其中有多少是由同一个程序编写的?)。
如何增加配额?有解决办法吗?我在 Windows 10 上使用 Matlab 2010a。
我也尝试在管理员模式下运行 Matlab,但没有成功。
【问题讨论】:
-
如果您说“我遇到错误”,请发布完整的错误,以便人们知道是哪一行导致它...
-
检查:您实际上使用的是 Matlab R2014a/b 吗? Win10 上的 Matlab 2004 听起来有点牵强。
-
文件所在的驱动器中是否可能没有足够的存储空间?另外,考虑用 %d 替换 %f,它会减少文件大小 ~30%
-
@dfri 对不起,完全错误的版本。我现在已经更正了。现在是 2010a
-
@excaza 抱歉,我现在已经发布了完整的错误