2012-01-22 2 views
3

Как импортировать CSV-файл в MATLAB ?. Строка в файле, с которым я работаю, выглядит следующим образом:Импорт CSV-файла в MATLAB

SUNW,2-Jan-98,1998,5,40.125,41.5 

Есть 36 столбцов и 10107 строк. Первая строка содержит заголовки столбцов. Похоже, что MATLAB не поддерживает импорт таких файлов CSV. Использование следующей функции textscan считывает все данные в один массив ячеек.

data = textscan(fid, '%s %s %d %d %f %f', ... 
    'HeaderLines',1, 'Delimiter',',', 'CollectOutput',1); 

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

ответ

2

Пример 6 в textscan documentation, кажется, чтобы покрыть случай использования, что вы заинтересованы в:

Используя текстовый редактор, создайте файл с разделителем запятой data2.csv, что содержит строки

abc, 2, NA, 3, 4 
    // Comment Here 
    def, na, 5, 6, 7 

назначают вход, который TextScan следует рассматривать как комментарии или пустые значений:

fid = fopen('data2.csv'); 
    C = textscan(fid, '%s %n %n %n %n', 'delimiter', ',', ... 
       'treatAsEmpty', {'NA', 'na'}, ... 
       'commentStyle', '//'); 
    fclose(fid); 

TextScan возвращает 1-на-5 элемент массива C со следующими клетками:

C{1} = {'abc'; 'def'} 
    C{2} = [2; NaN] 
    C{3} = [NaN; 5] 
    C{4} = [3; 6] 
    C{5} = [4; 7] 

Хотя это явно не назначить каждый столбец в отдельную переменную, вы можете легко сделать что-то вроде col1 = C{1};.

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