Delimiting a text file like "Text to columns"

3 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)

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by