У меня есть куча CSV-файлов для чтения в Matlab. Все файлы имеют аналогичную структуру, за исключением того, что последнее поле является необязательным. То есть некоторые файлы содержат его, другие - нет.Как читать текстовый файл с переменной длиной строки в Matlab?
Также файлы содержат как текстовые, так и числовые поля, поэтому csvread
не применяется.
Только альтернатива я знаю textscan
. К сожалению, я не могу найти спецификаторы для необязательных полей.
Я смотрю на спецификации:
formatSpec = '%d%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%s%[^\n\r]';
и желаю последний %s
быть необязательным.
Я думаю, вы можете использовать [xlsread] (http://se.mathworks.com/help/matlab/ref/xlsread.html). Функция предназначена для использования в листах excel, но я думаю, что она должна работать. – patrik