импорт файла CSV в MATLAB - PullRequest
       41

импорт файла CSV в MATLAB

3 голосов
/ 22 января 2012

Как я могу импортировать файл 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 ]

2 голосов
/ 22 января 2012

Пример 6 в документации textscan , кажется, охватывает интересующий вас сценарий использования:

С помощью текстового редактора создайте файл с разделителями-запятымиdata2.csv, который содержит строки

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

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

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

textcan возвращает массив ячеек C размером 1 на 5 сследующие ячейки:

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

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

1 голос
/ 22 января 2012

Если у вас есть MATLAB 2011b, тогда вы можете использовать инструмент для импорта электронных таблиц .

...