2016-03-10 7 views
0

Если я запускаю пример кода ниже, я получаю ошибку о неверном идентификатор файла в Matlab:Invalid ошибка идентификатор файла в цикле 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 в моем случае не позволяет программе писать файлы после того, как определенная их часть была написана той же программой?).

Как увеличить квоту? Есть ли работа? Я использую Matlab 2010a для Windows 10.

Я также попытался запустить Matlab в режиме администратора без успеха.

+1

Если вы говорите: «Я получаю сообщение об ошибке» пожалуйста, напишите полную ошибку, чтобы люди знали, что линия вызывает это ... – excaza

+0

Проверил: вы на самом деле с помощью Matlab R2014a/б? Matlab 2004 на Win10 звучит как растяжка. – dfri

+3

Возможно ли, что у вас недостаточно памяти на диске, где находится файл? также рассмотрите возможность замены% f на% d, это уменьшит размер файла на ~ 30% – drorco

ответ

1

Я предполагаю, что права правильны, а дисковое пространство не является проблемой, но вы должны проверить выход fopen, тем не менее, чтобы получить дополнительную информацию или некоторый try-catch, который вызывает ferror (fid) для получения дополнительных данных (обратите внимание на отсутствие точка с запятой, очевидно).

[fid,msg]=fopen('test.txt','w') 

Если это квота, связанные с вы должны иметь возможность отключить его в свойствах вашего диска, как показано на рисунке ниже (это на испанском языке, но вы должны получить идею). Просто щелкните правой кнопкой мыши на устройстве и выберите «Свойства»> «Квота диска»> «Показать конфигурацию» и отключите его, если он еще не установлен.

GUI location of the disk quota