Проблемы с чтением файла .csv с помощью ezread

#matlab

#matlab

Вопрос:

Я пытался прочитать CSV-файл с помощью ezread https://de.mathworks.com/matlabcentral/fileexchange/11026-ezread и я получаю следующую проблему:

Ошибка при использовании textscan Второй ввод должен быть векторным символом формата, содержащим хотя бы один > спецификатор или поле литерала.

Ошибка в ezread (строка 66) data = textscan(fid,format_str, ‘разделитель’,file_delim, ‘заголовки’, 1);

Я вызываю функцию следующим образом:

 tmpName = '/path/file.csv';
structRead = ezread(tmpName, 'r');
  

Я проверил, правильно ли указано tmpName с помощью isfile(), так что это правильный путь.
Первые две строки моего файла имеют следующий формат:

 a,b,c,d
1,2,e,f
  

Вы знаете, в чем может быть проблема?

Комментарии:

1. Почему вы используете отправку file exchange для такой простой задачи? Вы пробовали использовать readtable?

2. readtable в этом контексте это не так хорошо. Это вызывает заголовок таблицы.

Ответ №1:

Вместо этого ezread вам следует использовать importdata . Однако он не распознает разделение запятой , . Итак, вам нужно добавить дополнительную строку:

 tmpName = importdata('/path/file.csv');
structRead = split(a, ',')
  

Результатом является:

 2×4 cell array

  {'a'}    {'b'}    {'c'}    {'d'}
  {'1'}    {'2'}    {'e'}    {'f'}
  

Комментарии:

1. что ж, ezread на самом деле очень хорошее решение для решения проблемы, без необходимости выполнять extra .split или что-то подобное.

2. Как вы видите, EZread совсем не прост. Такого рода самодельные скрипты очень непостоянны.