how to read text file into formatted array

Hi
I have a text file which contains many rows of this shape
'0862;1;10/09/2002;09:15:59;23.845089;38.018470;486253.80;4207588.10'
I need to read each line in different cells. each cell contains data between ";" and the third and forth one are date and time while others are double numbers.
would you please help me to do so

댓글 수: 2

per isakson
per isakson 2014년 12월 15일
편집: per isakson 2014년 12월 15일
"I need to read each line in different cells" &nbsp Why is that? And what does it exactly mean?
H D
H D 2014년 12월 15일
thanks for comment. I need to read the whole txt file in a matrix. I presented the first line as a sample. each cell data is separated using semicolon as mentioned. in this case third and forth are date and time of day and all the rest can be saved as double in a matrix.

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

 채택된 답변

per isakson
per isakson 2014년 12월 15일
편집: per isakson 2014년 12월 15일

1 개 추천

Here is a function, which does what I believe is what you want. The third column of out is a serial date number.
>> out = cssm('cssm.txt')
out =
1.0e+06 *
0.0009 0.0000 0.7315 0.0000 0.0000 0.4863 4.2076
0.0009 0.0000 0.7315 0.0000 0.0000 0.4863 4.2076
0.0009 0.0000 0.7315 0.0000 0.0000 0.4863 4.2076
>> datestr( out(:,3), 31 )
ans =
2002-10-09 09:15:59
2002-10-09 09:15:59
2002-10-09 09:15:59
where
function out = cssm( filespec )
fid = fopen( filespec );
cac = textscan( fid, '%f%f%s%s%f%f%f%f' ...
, 'Delimiter',';', 'CollectOutput',true );
fclose( fid );
str = cell2mat(cac{2});
sdn = datenum( str, 'mm/dd/yyyyHH:MM:SS');
out = cat( 2, cac{1}, sdn, cac{3} );
end
and where cssm.txt contains
0862;1;10/09/2002;09:15:59;23.845089;38.018470;486253.80;4207588.10
0862;1;10/09/2002;09:15:59;23.845089;38.018470;486253.80;4207588.10
0862;1;10/09/2002;09:15:59;23.845089;38.018470;486253.80;4207588.10

댓글 수: 4

H D
H D 2014년 12월 15일
what is cssm! matlab does not find it
H D
H D 2014년 12월 15일
this is the error I get while cssm is not known by the version of matlab I use:
>> out = cssm('Truck.txt') Undefined function 'cssm' for input arguments of type 'char'.
per isakson
per isakson 2014년 12월 15일
편집: per isakson 2014년 12월 15일
cssm is the function defined after the word, where, in my answer.
H D
H D 2014년 12월 15일
:D sorry for my crazy question. you are right. It works perfectly. thanks

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

추가 답변 (1개)

Azzi Abdelmalek
Azzi Abdelmalek 2014년 12월 15일
편집: Azzi Abdelmalek 2014년 12월 15일

0 개 추천

fid=fopen('FileName.txt')
tline = fgetl(fid)
out=[];
while ischar(tline)
out{end+1,1} =tline
tline= fgetl(fid);
end
fclose(fid)
%You can aadd
A=regexp(out,';','split')
n=numel((A{1}))
B=reshape([A{:}],n,[])'
res=[cell

카테고리

도움말 센터File Exchange에서 Large Files and Big Data에 대해 자세히 알아보기

질문:

H D
2014년 12월 15일

댓글:

H D
2014년 12월 15일

Community Treasure Hunt

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

Start Hunting!

Translated by