Import text file with header

조회 수: 103 (최근 30일)
Adelyn Luu
Adelyn Luu 2013년 2월 26일
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

채택된 답변

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

댓글을 달려면 로그인하십시오.

추가 답변 (4개)

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

Azzi Abdelmalek
Azzi Abdelmalek 2013년 2월 26일
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 2013년 2월 26일
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 2013년 2월 26일
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);

카테고리

Help CenterFile Exchange에서 Data Import and Export에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by