Borrar filtros
Borrar filtros

Delimiting a text file like "Text to columns"

5 visualizaciones (últimos 30 días)
Brian
Brian el 14 de Sept. de 2011
Hello, I am trying to import data from a Text file (.txt). This data has a single column of mixed (numeric and string) data that is | (bar) delimited. My goal is to import this data and seperate each delimited portion into a seperate columns while maintaining the rows. Essentially, I am trying to do the Excel "Text to columns" with MATLAB. Thank you

Respuesta aceptada

Walter Roberson
Walter Roberson el 14 de Sept. de 2011
%open file
fid = fopen(YourFile,'rt');
%figure out how many columns are there
firstline = fgetl(fid);
ncol = 1 + sum(firstline == '|');
%reset to beginning of file
fseek(fid,0,0);
%read data
indata = textscan(fid,repmat('%s',1,ncol),'Delimiter','|','CollectOutput',1);
%close file
fclose(fid);
The result will be indata, a cell array of strings.
  4 comentarios
Brian
Brian el 14 de Sept. de 2011
How do I look at indata's data? Below is a step-by-step output:
>> fid = fopen('RMS_Functional_Block_Report.txt','rt')
fid =
5
>> firstline = fgetl(fid)
firstline =
RMS Functional Block|Reference Designator|Part Number|Sheet Number|Description|Invisible
>> ncol = 1 + sum(firstline == '|')
ncol =
6
>> fseek(fid,0,0)
ans =
0
>> indata = textscan(fid,repmat('%s',1,ncol),'Delimiter','|','CollectOutput',1)
indata =
{646x6 cell}
>> fclose(fid)
ans =
0
Walter Roberson
Walter Roberson el 15 de Sept. de 2011
indata{L,C} will be the string that was on line #L at column #C
For example, indata{3,7} is column 7 of line 3.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre String Parsing en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by