fopen and fget reading lines from a text

7 vues (au cours des 30 derniers jours)
Sergio
Sergio le 2 Fév 2024
Commenté : Stephen23 le 2 Fév 2024
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

Réponse acceptée

Dyuman Joshi
Dyuman Joshi le 2 Fév 2024
Modifié(e) : Dyuman Joshi le 2 Fév 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 commentaires
Dyuman Joshi
Dyuman Joshi le 2 Fév 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 le 2 Fév 2024
"that File ID was given as 5"
Do not hard-code the File ID.

Connectez-vous pour commenter.

Plus de réponses (0)

Produits


Version

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by