Команда для импорта данных из файла - PullRequest
4 голосов
/ 04 мая 2011

Я использую MATLAB для организации данных измерений ИК-камеры, и я хотел бы работать более эффективно, чем сейчас.

ПО для ИК-камеры экспортирует данные, упорядоченные по столбцам

Some text
488.875 1300110589.875  2   14.3.2011 14:49:49.875  0   1
488.875 1300110590.156  2   14.3.2011 14:49:50.156  0   2
488.875 1300110590.671  2   14.3.2011 14:49:50.671  0   3
488.875 1300110590.953  2   14.3.2011 14:49:50.953  0   4
488.875 1300110591.234  2   14.3.2011 14:49:51.234  0   5

Я могу загрузить его вручную, я также могу использовать load -ascii foo.bar, но первый путь длинный из-за бесконечного щелчка, второй раздражает, потому что при использовании load -ascii мне нужно удалить первую строку с «некоторым текстом». Сейчас мне нужно отредактировать все файлы, загрузить их, извлечь первый столбец и объединить их в матрицу.

Итак, мой вопрос: есть ли какая-либо команда или подпрограмма, которая может импортировать эту файловую структуру без необходимости ее редактирования? Я просто хочу получить данные из первого столбца (редактирование одного файла не такая трата времени)

Спасибо за любые предложения.

1 Ответ

4 голосов
/ 04 мая 2011

Функция TEXTSCAN - это путь. Например:

fid = fopen('foo.bar','r');
data = textscan(fid,'%f %*f %*d %*s %*s %*d %*d','HeaderLines',1);
fclose(fid);
data = data{1};  %# Remove cell array encapsulation

Это позволит пропустить одну строку заголовка в файле и проигнорировать данные в столбцах 2–7, возвращая только данные из первого столбца в массиве N-by-1 data.

...