fopen and fget reading lines from a text

11 ビュー (過去 30 日間)
Sergio
Sergio 2024 年 2 月 2 日
コメント済み: Stephen23 2024 年 2 月 2 日
Hi, I try to work with fget and fopen, and I would like to read the first three lines from a text file (attached), and print them on the MATLAB output,
I try
fid = fopen('test.txt');
line_ex = fgetl(5) % read line excluding newline character
fid = fopen('test.txt');
line_ex = fgetl(5) % read line excluding newline character
fid = fopen('test.txt');
line_ex = fgetl(5) % read line excluding newline character
However, this prints out only the three first lines one time, then it continues to 4,5,6, then 7,8,9 etc.
Is there a better way to simply reproduce the three first lines of the text files, with the same command, over again?
Thanks

採用された回答

Dyuman Joshi
Dyuman Joshi 2024 年 2 月 2 日
編集済み: Dyuman Joshi 2024 年 2 月 2 日
You need to use the file ID as input to fgetl -
fid = fopen('test.txt');
%lines to read
num = 3;
%Preallocate a cell array to store the data
C = cell(num,1);
for k=1:num
%Read the line
str = fgetl(fid);
%Store it in a cell element
C{k} = str;
%Display it
disp(str)
end
X-412.538 Y-150.417 Z505.02 B21=-24.976 A1=19.761 C0. X-412.313 Y-151.044 Z505.02 B21=-24.98 A1=19.85 C0. X-412.087 Y-151.67 Z505.02 B21=-24.984 A1=19.938 C0.
C
C = 3×1 cell array
{'X-412.538 Y-150.417 Z505.02 B21=-24.976 A1=19.761 C0.'} {'X-412.313 Y-151.044 Z505.02 B21=-24.98 A1=19.85 C0.' } {'X-412.087 Y-151.67 Z505.02 B21=-24.984 A1=19.938 C0.' }
  3 件のコメント
Dyuman Joshi
Dyuman Joshi 2024 年 2 月 2 日
Okay.
But it's not a good idea to hard code values. Better to store it as a variable and use it accordingly.
Stephen23
Stephen23 2024 年 2 月 2 日
"that File ID was given as 5"
Do not hard-code the File ID.

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeText Files についてさらに検索

製品


リリース

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by