fopen and fget reading lines from a text

7 views (last 30 days)
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

Accepted Answer

Dyuman Joshi
Dyuman Joshi on 2 Feb 2024
Edited: Dyuman Joshi on 2 Feb 2024
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 Comments
Dyuman Joshi
Dyuman Joshi on 2 Feb 2024
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 on 2 Feb 2024
"that File ID was given as 5"
Do not hard-code the File ID.

Sign in to comment.

More Answers (0)

Products


Release

R2023b

Community Treasure Hunt

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

Start Hunting!