Ошибка Matlab Fopen с CSV-файла - PullRequest
0 голосов
/ 29 апреля 2018

Я просто пытаюсь импортировать CSV-файл в Matlab, используя функцию textcan. Но каждый раз, когда я запускаю программу, она всегда выдает эту ошибку

Ошибка при использовании textcan Неверный идентификатор файла. Используйте fopen для генерации действительный идентификатор файла.

Но, как вы можете видеть в приведенном ниже коде, я использую fopen для подготовки файла к использованию текстового сканирования.

S = 'Proto2.csv';
fidi = fopen(S);
C = textscan(fidi, '%f%s%f%f%f%f%f%f%s%f%f%f%f%f%f%f%f%f%f%f%f%f%f', 'Delimiter','\n', 'HeaderLines',11, 'CollectOutput',1);

После этого я использую C, чтобы получить доступ к нужным мне данным из файла CSV

1 Ответ

0 голосов
/ 29 апреля 2018

Обычно, прежде чем приступить к операциям чтения и / или записи на дескрипторе файла, вы должны убедиться, что дескриптор, возвращаемый функцией fopen, действителен. Из официальной документации от Matlab:

fileID = fopen (имя файла) открывает файл, имя файла, для двоичного чтения доступ и возвращает целочисленный идентификатор файла, равный или больше чем 3. MATLAB® резервирует идентификаторы файлов 0, 1 и 2 для стандартных ввод, стандартный вывод (экран) и стандартная ошибка соответственно.

Если fopen не может открыть файл, то fileID равен -1.

Проверьте значение переменной fidi, прежде чем продолжить с textscan, я уверен, что оно равно -1. Это происходит либо потому, что файл не найден (, если вы не указали полный абсолютный путь, Matlab ищет его в текущем рабочем каталоге ), либо из-за того, что у файла есть блокировка общего доступа (* 1021) * следовательно, убедитесь, что он не используется другими приложениями, пока вы пытаетесь его прочитать ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...