Чтение строк данных до конца - PullRequest
0 голосов
/ 30 июня 2018

Я пытаюсь прочитать данные в column2 до конца строки. Я не знаю количество строк данных, но оно конечно (<100). Столбцы разделены пробелом: </p>

header line 1
header line 2
header line 3
column1    column2
1          2
3          5
5          7
7          9
.          .
.          .
.          .

header line 4
header line 5

Я попробовал следующий код. Работает, если больше нет строк заголовка:

mydata = dlmread('data.txt', '', 4, 1)

Как это работает с другими строками заголовка после окончания строк данных, как показано выше?

Ответы [ 2 ]

0 голосов
/ 30 июня 2018

Более простое решение - использовать textcan для чтения вашего файла. Вы можете указать количество строк заголовка в качестве дополнительного аргумента вызова функции. Дополнительные строки в конце вашего файла игнорируются функцией при указании правильного спецификатора преобразования.

fileID = fopen('data.txt');
mydata = textscan(fileID,'%d%d','HeaderLines',4);
fclose(fileID);

mydata {2} содержит данные из столбца 2.

0 голосов
/ 30 июня 2018

Простой подход - чтение файла в строковом формате, удаление строк и запись в новый файл.

% Read the file
fid = fopen(filePath,'r');
str = textscan(fid,'%s','Delimiter','\n');
fclose(fid);

% Extract number lines
str2 = str{1}(5:end-2);

% Save as a text file
fid2 = fopen('new.txt','w');
fprintf(fid2,'%s\n', str2{:});
fclose(fid2);

mydata = dlmread('new.txt','',0,1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...