How to read input.txt?
1 回表示 (過去 30 日間)
古いコメントを表示
Yasuyuki Hamanaka
2021 年 8 月 24 日
コメント済み: Walter Roberson
2021 年 8 月 25 日
Hello!
Would you tell me how to read .txt file like below.
aaaaaa
bbbbbb
1
200
2000
4129
4189
I would like to read first two lines as string and other lines as real.
I tried to use fscanf though, it doesn't work well.
Thank you.
3 件のコメント
Stephen23
2021 年 8 月 24 日
@Yasuyuki Hamanaka: what integer do you expect the characters 'aaaaaa' to return ?
採用された回答
Walter Roberson
2021 年 8 月 24 日
fid = fopen('input.txt');
textlines{1} = fgetl(fid);
textlines{2} = fgetl(fid);
numbers = cell2mat(textscan(fid, '%f'));
fclose(fid)
2 件のコメント
Walter Roberson
2021 年 8 月 25 日
For future reference:
There is also the closely related function fgets() . The difference between fgetl() and fgets() is that fgetl() strips the line terminators off, but fgets() leaves them in.
So when the purpose is to copy a file, then fgets() is better because it includes the original line terminators in -- if the original line terminator was CR+LF then the CR+LF will both be present for fgets() and will make it into any file that you write them to fgetl() would remove the CR+LF, so fgetl() is better for the case where you are analyzing the content and don't want to have to worry all the time about whether the original had CR+LF or LF alone.
その他の回答 (1 件)
dpb
2021 年 8 月 24 日
Are the string data pertinent or just in the way of returning the numeric data?
If the former, while you can make it work with low-level i/o such as fprintf, it's the hard way to go at it -- use
readcell instead.
If the latter and the text is (say) a header line and units or similar, use readtable
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Migrate GUIDE Apps についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!