want to skip the text lines in a file

1 回表示 (過去 30 日間)
Moon Datta
Moon Datta 2012 年 11 月 2 日
コメント済み: SYED AZHAR 2018 年 2 月 14 日
I have a text file in which first few lines are text. after than the numeric data is there. I want to skip the text lines.The number of text line is also not fixed. But data always start after the string "BEGIN DATA". I have tried but I am not getting any way to read the numeric data ignoring the text lines. my data file looks like
"gdeudfghdjcklkscdjdjljmdxsjdjmjmdjdckdckshfihsklkdkshncfsdjgbfsdgfvdefhvdfjcs
klhnfcjksdzhbsfvbhdslhfc.siafslfkdl;s
hfcsddjkhfcsjldifgdsfgdrjlsjfkldjksdfgvjdsgvbjdshngffgksl
dsghbfvdjkshghrjgujskdhna,h
BEGIN DATA
1
5
2
3
6
74
5
8
6
.
.
I need only
1
5
2
3
6
74
5
8
6
.
.
in a double
Thanks in advance

採用された回答

Andrei Bobrov
Andrei Bobrov 2012 年 11 月 2 日
編集済み: Andrei Bobrov 2012 年 11 月 2 日
f1 = fopen('test2.txt'); % your data in file test2.txt
c = textscan(f1,'%s','Delimiter','\n');
fclose(f1);
out = str2double(c{1}(find(strcmp(c{1},'BEGIN DATA'))+1:end));
out = out(~isnan(out));
or
out = regexp(c{1},'^\d*$','match');
out = str2double(cat(1,out{~cellfun(@isempty,out)}));
or
out = str2double(c{1}(cellfun(@(y)all(~isletter(y))&~isempty(y),c{1})));
  4 件のコメント
Moon Datta
Moon Datta 2012 年 11 月 2 日
編集済み: Moon Datta 2012 年 11 月 2 日
I am not understanding what is corrected. actually I need in this way
It will ask me to give the input
I shall give the input
then the program will run
it will give me result
SYED AZHAR
SYED AZHAR 2018 年 2 月 14 日
Go for Gui Interfacing

サインインしてコメントする。

その他の回答 (1 件)

Jan
Jan 2012 年 11 月 2 日
編集済み: Jan 2012 年 11 月 2 日
Alternatively:
DataStr = fileread('test2.txt');
Key = 'BEGIN DATA';
Index = strfind(DataStr, Key);
Value = sscanf(DataStr(Index + length(Key) + 1), '%g ');

カテゴリ

Help Center および File ExchangeWeather and Atmospheric Science についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by