Text reader to numbers
1 回表示 (過去 30 日間)
古いコメントを表示
Shawntae Harris
2020 年 7 月 22 日
コメント済み: Walter Roberson
2020 年 7 月 22 日
I have to make a program that goes through a text file and extracts numerical values, I am having a hard time extracting those numbers, here is what I have so far. The text file also has a lot if letters associated with it to

6 件のコメント
採用された回答
Walter Roberson
2020 年 7 月 22 日
filename = 'HypothesisTest2.txt';
S = fileread(filename);
temperatures = str2double( regexp(S, '^(?<=2 FAIL OPEN_CIRCUIT Int ')[\d.]+', 'match') );
4 件のコメント
Walter Roberson
2020 年 7 月 22 日
If you were to post an actual file instead of an image of a file, I could test...
Oh, I do see one problem:
temperatures = str2double( regexp(S, '^(?<=2 FAIL OPEN_CIRCUIT Int )[\d.]+', 'match', 'lineanchors') );
その他の回答 (1 件)
Mohammad Sami
2020 年 7 月 22 日
編集済み: Mohammad Sami
2020 年 7 月 22 日
Assuming the pattern shown in your picture. Ignore line 1, line 2& line 3 form a repeating pattern.
I would suggest read the entire file first. Then we split it by line. Then put the line following line 2 pattern together and same for line3.
file = 'filename.txt';
fid = fopen(file,'r');
rawtxt = fread(fid,'*char')';
rawtxt = splitlines(rawtxt);
line2s = rawtxt(2:2:end);
line3s = rawtxt(3:2:end);
line2txt = strjoin(line2s,newline);
line3txt = strjoin(line3s,newline);
out2 = textscan(line2txt,'%f FAIL OPEN_CIRCUIT Int %f degC');
out3 = textscan(line3txt,'%f %f W/m^2');
参考
カテゴリ
Help Center および File Exchange で Characters and Strings についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
