Reading combinations of strings and numbers from a text file
1 次查看(过去 30 天)
显示 更早的评论
I have a text file of a TLE as shown below.
1 24652U 96063A 96318.74847837 -.00000020 00000-0 00000+0 0
2 24652 3.9929 210.6007 7281127 177.7757 190.4436 2.27277888
1 24652U 96063A 96319.62211352 -.00000020 00000-0 00000+0 0
2 24652 3.9929 210.3183 7284735 178.4392 185.2995 2.27373269
1 24652U 96063A 96319.62351606 .00008082 00000-0 30835-2 0
2 24652 3.9764 210.1654 7280836 178.5436 186.6267 2.27380102
1 24652U 96063A 96319.62356237 .00009638 00000-0 38025-2 0
2 24652 3.9632 210.3512 7280110 178.4006 186.6625 2.27374993
1 24652U 96063A 96320.05952563 -.00002597 00000-0 -98092-3 0
2 24652 3.9623 210.1661 7275699 178.7092 185.6294 2.27896863
I am trying to separate the data into two cells; one starts with 1, and the other starts with 2. I can get the first two lines as follows.
fid_iss = fopen('iss.txt');
line1 = textscan(fid_iss, '%f%s%s%f%f%s%s%f%f\r\n %*[^\n]');
line2 = textscan(fid_iss, '%f%f%f%f%f%f%f%f\r\n %*[^\n]');
fclose(fid_iss);
However, I am not getting the remaining lines. How can I store all lines that starts with 1 into a single cell?
1 个评论
Jeremy Hughes
2016-11-1
Start by reading two lines as one format:
fid_iss = fopen('iss.txt');
line = textscan(fid_iss, '%f%s%s%f%f%s%s%f%f%*[^\r\n]%*[\r\n]%f%f%f%f%f%f%f%f');
fclose(fid_iss);
Then you can extract:
line1 = line(1:9);
line2 = line(10:end);
I think that should do what you're looking for.
回答(1 个)
KSSV
2016-10-31
fid = fopen('TLE.txt','rt') ;
S = textscan(fid,'%s','delimiter','\n') ;
fclose(fid) ;
S = S{1} ;
% get 1 (odd position)
S1 = S(1:2:length(S)) ;
% get 2 (even position)
S2 = S(2:2:length(S)) ;
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Language Support 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!