how to read text file into formatted array
1 回表示 (過去 30 日間)
古いコメントを表示
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
2014 年 12 月 15 日
編集済み: per isakson
2014 年 12 月 15 日
"I need to read each line in different cells"   Why is that? And what does it exactly mean?
採用された回答
per isakson
2014 年 12 月 15 日
編集済み: per isakson
2014 年 12 月 15 日
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 件のコメント
per isakson
2014 年 12 月 15 日
編集済み: per isakson
2014 年 12 月 15 日
cssm is the function defined after the word, where, in my answer.
その他の回答 (1 件)
Azzi Abdelmalek
2014 年 12 月 15 日
編集済み: Azzi Abdelmalek
2014 年 12 月 15 日
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
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Text Data Preparation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!