Reading Text Files with Numbers and String

39 visualizzazioni (ultimi 30 giorni)
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 Commenti
Hans123
Hans123 il 13 Ago 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

Accedi per commentare.

Risposta accettata

Star Strider
Star Strider il 13 Ago 2020
Modificato: Star Strider il 13 Ago 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 Commenti
Hans123
Hans123 il 14 Ago 2020
works exactly as I want. As always, thank you Star Strider!
Star Strider
Star Strider il 14 Ago 2020
As always, my pleasure!

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by