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 соответственно. Я тоже не получаю нулевые ячейки.
Надеюсь это поможет!