Reading Text Files with Numbers and String

35 visualizaciones (últimos 30 días)
Hans123
Hans123 el 13 de Ag. de 2020
Comentada: Star Strider el 14 de Ag. de 2020
Hi, this is a common question and I could not find an answer pertaining to my problem
I have attached an excerpt of my textfile in this question
my text file is built like this and I want to extract ID time and C columns, I tried dlmread and textscan but they yield errors, any help appreciated
ID#: 0 time: 6379.937500 A: 0 B: 0.000000 ; C 0.000000
% my current code
fileID = fopen('ni100khz.txt');
A=textscan(fileID, '%s %f %s %f %s %f %s %f %s %s %f %f ');
fclose(fileID);
% it doesn't scan the whole txt file
  2 comentarios
源樹 上林
源樹 上林 el 13 de Ag. de 2020
readtable ?
Hans123
Hans123 el 13 de Ag. de 2020
Thanks for the reply, I am working with MATLAB 2017 and it is not available for me. I have attached the format of my textfile, hope it helps. I am currently trying textscan but can't make progress

Iniciar sesión para comentar.

Respuesta aceptada

Star Strider
Star Strider el 13 de Ag. de 2020
Editada: Star Strider el 13 de Ag. de 2020
Try this:
fidi = fopen('data1.txt');
A = textscan(fidi, 'ID#: %f time: %f A: %f B: %f C %f', 'Delimiter',{'\t',';'}, 'MultipleDelimsAsOne',1, 'CollectOutput',1, 'EndOfLine','\r\n');
fclose(fidi);
producing:
Am = cell2mat(A)
Am =
100 4.6563 0 0 0
100 4.6875 0 0 0
100 4.6875 614 3.001 30.01
EDIT —
To extract ‘ID#’, ‘time:’ and ‘C’ only:
A = textscan(fidi, 'ID#: %f time: %f A: %*f B: %*f C %f', 'Delimiter',{'\t',';'}, 'MultipleDelimsAsOne',1, 'CollectOutput',1, 'EndOfLine','\r\n');
The rest of the code is unchanged.
.
  2 comentarios
Hans123
Hans123 el 14 de Ag. de 2020
works exactly as I want. As always, thank you Star Strider!
Star Strider
Star Strider el 14 de Ag. de 2020
As always, my pleasure!

Iniciar sesión para comentar.

Más respuestas (0)

Community Treasure Hunt

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

Start Hunting!

Translated by