Чтение большого файла данных csv с несколькими строками headerinfo в Matlab - PullRequest
1 голос
/ 29 апреля 2010

У кого-нибудь есть какой-нибудь совет, как прочитать разделенный запятыми файл данных в Matlab? Простые решения (такие как dlmread, fscanf), похоже, не работают, так как имеется несколько (10) строк информации заголовка. Ближайшее решение, которое я получил, это:

C=textscan(datafile)
G=cell2mat(C{1,1}(34:endoffile)}) //34 is the line the data starts
V=str2num(G)

проблема здесь в том, что данные, например, выглядят так:

;1.0345,937,18,763
;1.0355,947,4,652
etc.

При преобразовании в матрицу все строки в ячейке должны быть одинакового размера, в противном случае выдается ошибка с использованием 'vertcat'. Если нет другого варианта, я мог бы просто удалить заголовок, скажем, в блокноте, но для многих файлов это было бы утомительным занятием.

1 Ответ

5 голосов
/ 29 апреля 2010

DLMREAD принимает параметры начальной строки / столбца или, альтернативно, параметр диапазона. Так что, если ваши данные начинаются в строке 10, вы можете попробовать

V = dlmread(datafile, '', 9, 0);

Если вы предпочитаете TEXTSCAN , вы можете указать число HeaderLines для пропуска:

V = textscan(datafile, ..., 'HeaderLines', 10, ...);

Для получения дополнительной информации просмотрите раздел «Параметры, настраиваемые пользователем» на странице документации.

...