Проблема при написании функции со строкой в ​​качестве аргумента - PullRequest
0 голосов
/ 31 августа 2011

Мне нужно написать функцию, входным аргументом которой должно быть имя файла, и функция выполнит определенную операцию с открытым файлом. Вот пример функции, которую я написал,

 function readFile = loadOneColumnFile(fileName)
 fid1 = fopen(fileName);
 readFile = 0;
 fclose(fid1);

Но когда я вызываю эту функцию в командной консоли следующим образом,

>> testValue = loadOneColumnCSV('/usr1/test.csv');

Matlab возвращает следующее сообщение об ошибке

??? Неопределенная функция или метод «loadOneColumnFile» для входных аргументов типа «char».

Похоже, определение функции неверно. Как это исправить? Спасибо.

1 Ответ

0 голосов
/ 31 августа 2011

MATLAB обрабатывает строку как массив символов (например, C ++, за исключением того, что строки не заканчиваются нулем в MATLAB).

Несмотря на сообщение об ошибке, я не думаю, что есть какие-либо проблемы с передачей строки. Проблема в том, что MATLAB не может найти вашу функцию. Итак:

  1. Файл, содержащий функцию, должен иметь то же имя, что и функция (в вашем случае сохраните функцию в файле с именем loadOneColumnFile.m)
  2. loadOneColumnFile.m должен быть помещен в рабочий (текущий) каталог, чтобы MATLAB мог его найти.
  3. Название функции не соответствует вашему вопросу. Убедитесь, что вы использовали только один из loadOneColumnFile или loadOneColumnCSV для именования функции и имени файла.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...