Matlab, текстовое сканирование: точное выделение строк

Matlab и тексты могут выдавать, к сожалению. В моем случае я могу импортировать интересующие меня данные, используя:

f = fopen(file,'r');  % Open text file
data=textscan(f, '%f %f %f %f %f %f %f %f', 'Delimiter',',', 'HeaderLines',14);
fclose(f);

Но

В 12-й и 13-й строках заголовка у меня есть некоторые интересные данные, структурированные следующим образом:

Calibration Coefficient,0.002501,0.001,0.1294,35.5,200,66.666,1
Offset,0.9,0,0,0,0.7,0,0

таким образом, они являются строками в первом столбце, а затем 7 двойными, которые должны быть закодированы таким образом (?)

param1=textscan(f, '%*s %f %f %f %f %f %f %f','Delimiter',',','HeaderLines',11);
param2=textscan(f, '%*s %f %f %f %f %f %f %f','Delimiter',',','HeaderLines',12);

На самом деле мне было интересно, почему ячейка param пуста, и было ли возможным импортировать только данные в строках 12 и 13 моих файлов.

Заранее спасибо.

1 ответ

Решение

Похоже, у вас все почти правильно. Вот небольшое изменение, которое должно исправить то, что вам нужно (надеюсь)

param1=textscan(f, '%s %f %f %f %f %f %f %f',1,'Delimiter',',','HeaderLines',11);
param2=textscan(f, '%s %f %f %f %f %f %f %f',1,'Delimiter',',','HeaderLines',12);

Обратите внимание на вставку "1" перед разделителем. Я почти уверен, что это говорит о том, чтобы просто прочитать 1 комплект "% s% f% f% f% f% f% f% f" перед остановкой. Таким образом, вы читаете только 12 и 13 строки и сохраняете их в param1 и param2 соответственно. Я тоже не получаю нулевые ячейки.

Надеюсь это поможет!

Другие вопросы по тегам