2010-08-05 1 views
0

У меня есть текстовый файл из 10001 строк, где первая строка содержит имя атрибутов, а следующие строки содержат значения. Типы атрибутов смешиваются (строки и поплавки) и разделяются символом '\ t'.лучший способ импортировать набор данных в matlab и организовать данные в соответствующую структуру

Кто-нибудь знает, что является лучшим способом импорта такого текстового файла в Matlab и организовать эти данные в соответствующую структуру для дальнейшего анализа?

Я хотел бы использовать эти данные для некоторых приложений добычи данных, так что было бы очень полезно, если каждый столбец может содержать метаданные, а также (типа переменного, числовое/категорично значение ...)

Спасибо за предложения!

+0

Это примерно то же самое? http://stackoverflow.com/questions/3414581/matlab-how-to-read-file-using-textscan – yuk

+0

@yuk: нет, речь идет о хранении данных после его чтения. Это шаг 2, другой пост - шаг 1. – Mikhail

ответ

2

Как индексируются столбцы, по имени или по целочисленному индексу?

В первом случае лучшим подходом будет использование struct-array. Элемент массива для каждой строки в исходных данных. Ответы на два вопроса:

  1. Как будут называться поля? Вы знаете заголовок заранее? Являются ли все строки заголовков действительными именами переменных MATLAB и могут использоваться как имена полей? Функция genvarname может помочь в некоторых сценариях.

  2. Как преобразовать матрицу данных в виде вывода из textscan в массив структур? Посмотрите на функцию cell2struct в справке MATLAB. Если имена полей (заголовок) действительно динамическим, то вы все еще можете использовать cell2struct путем создания аргумента ячейки динамически и затем вызвать cell2struct(args{:})

Если столбцы индексируются численно затем остаться с матрицей ячеек в качестве выхода textscan.

Для метаданных я бы использовал другую переменную, являющуюся структурой или структурным массивом.