reading strings between spaces from a text file.
13 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Rakesh Praveen
el 28 de Sept. de 2014
Comentada: Geoff Hayes
el 15 de Oct. de 2021
The text file 'test_text.txt' contains something like this:
2.000000e-01 3 4.230000e-0 1 2
I wanted to pick each number between the spaces in a array and later i can process them. I am able to pick what I need with the code below. So if you see in line2 'X_data' contains all strings in a array so i can access them later. But say suppose there are 100 numbers in that line in the text file and i wanted to pick X_data(90) then how do I do it without keep writing %s so many times in textscan command ? Thank you.
fid = fopen('test_text.txt','r');
X_data = textscan(fid2,'%s %s %s %s');
str = X_data(4);
fclose('fid');
0 comentarios
Respuesta aceptada
Mohammad Abouali
el 28 de Sept. de 2014
you could use
fid = fopen('test_text.txt','r');
xdata=str2num(fgets(fid))
fclose(fid)
or you can use
M = dlmread(filename, delimiter)
or you can use
T = readtable(filename)
2 comentarios
Rakesh Praveen
el 28 de Sept. de 2014
Editada: Rakesh Praveen
el 28 de Sept. de 2014
Mohammad Abouali
el 29 de Sept. de 2014
what version of matlab do you use? May be in your version that function is not yet included. Not sure when readtable was added to matlab.
Más respuestas (2)
Geoff Hayes
el 28 de Sept. de 2014
Rakesh - is it necessary that you treat all the data in the file as strings, especially since they appear (from your example) to be numeric? If not, then you could import the data using importdata where you specify that the delimiter between each column of data is the space character
X_data=importdata('test_text.txt',' ');
Then X_data(90) would return the 90th element from the only row in that file.
2 comentarios
Geoff Hayes
el 28 de Sept. de 2014
Did you set the delimiter type (second input to importdata) to be the space character? I took your example and pasted it into a file, and was able to read in the data using the above line of code.
Mohammad R. Ghassemi
el 14 de Oct. de 2021
Hi,
I need to read each line in a text file as a comple string including space such as 'n30e 45se', and apply a set of functions such as 'M=strfind(str,'n')' to each line, and get an output text file.
1 comentario
Geoff Hayes
el 15 de Oct. de 2021
@Mohammad R. Ghassemi - as this isn't an answer to the question, please delete it and post it as a new question.
Ver también
Categorías
Más información sobre Data Import and Export en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!