Filter löschen
Filter löschen

Import text file with header

87 Ansichten (letzte 30 Tage)
Adelyn Luu
Adelyn Luu am 26 Feb. 2013
Hi, I have a text file with header, I need to import the file to matlab and to use numeric data. The numeric data in a line is separated by a ",". The file is as following Thanks Adelynne
base shear
Analysis Series = cyclic2 (cyclic2)
Load Case = [2] = [1] + cyclic
0,-2.980232E-08
0.1,-24.82325
0.2,-87.0501
0.3,-75.9906
0.4,86.35868
0.5,281.4871
0.6,417.2569
0.7,521.8102
0.8000001,622.5663
0.9,711.8201
1,785.7328
1.1,838.6344
1.2,863.1584
1.3,857.4628
1.4,817.3618
1.5,700.1636

Akzeptierte Antwort

Jing
Jing am 26 Feb. 2013
The functions that would be most helpful are 'fopen' and 'textscan'.
fid=fopen('yourtext.txt');
cdata=textscan(fid,'%f %f','delimiter',',');
fclose(fid);
  5 Kommentare
Jing
Jing am 26 Feb. 2013
just use textscan, and tell it you have how many header lines using HeaderLines options. Read Isakson's answer below...
per isakson
per isakson am 26 Feb. 2013
Bearbeitet: per isakson am 26 Feb. 2013
cdata is a cell array. Read on cell array in the on-line help. And try
plot( cdata{1}, cdata{2} )

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (4)

per isakson
per isakson am 26 Feb. 2013
... but don't forget the header
fid=fopen('yourtext.txt');
cdata=textscan(fid,'%f%f','delimiter',',', 'HeaderLines', 3 );
fclose(fid);

Azzi Abdelmalek
Azzi Abdelmalek am 26 Feb. 2013
fid = fopen('file.txt');
line1 = fgetl(fid);
res={line1};
while ischar(line1)
line1 = fgetl(fid);
res{end+1} =line1
end
fclose(fid);
res(end)=[]
data=res(4:end)
a=cellfun(@(x) regexp(x,',','split'),data,'un',0)
x1=str2num(char(cellfun(@(x) x{1},a,'un',0)'))
x2=str2num(char(cellfun(@(x) x{2},a,'un',0)'))

Muthu Annamalai
Muthu Annamalai am 26 Feb. 2013
z=textread('filename.dat','%s','delimiter','\n')
z=z(4:end)
q=regexp(z,',','split')
data = reshape(str2double([q{:}]),2,16)'

Miroslav Balda
Miroslav Balda am 26 Feb. 2013
The simplest way to read such data is in using the function txt2mat fro the File Exchange:
www.mathworks.com/matlabcentral/fileexchange/18430
Should the name of your data be Adely.txt , the following statement does the task:
A = txt2mat('Adelyn.txt','InfoLevel',0);

Kategorien

Mehr zu Printing and Saving finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by