лучший способ импортировать набор данных в Matlab и организовать данные в соответствующую структуру - PullRequest
0 голосов
/ 05 августа 2010

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

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

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

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

1 Ответ

2 голосов
/ 05 августа 2010

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

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

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

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

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

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

...