2010-04-29 1 views
1

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

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». Если никакой другой опции, я мог бы просто удалить заголовок, если вы скажете блокнот, но с большим количеством файлов это будет утомительной работой.

ответ

5

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

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

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

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

Scan вниз «User Options конфигурируемых» на страницу документации для более подробной информации.

+0

dlmread - путь – Geoff

Смежные вопросы