Команда для импорта данных из файла

Я использую 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 мне нужно удалить первую строку с «каким-то текстом». Сейчас мне нужно отредактировать все файлы, загрузить их, извлечь первый столбец и объединить их в матрицу.

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

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


person Crowley    schedule 04.05.2011    source источник


Ответы (1)


Используйте функцию 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 на 1 data.

person gnovice    schedule 04.05.2011
comment
Спасибо за быстрый и точный ответ! - person Crowley; 04.05.2011