Reading combinations of strings and numbers from a text file

1 vue (au cours des 30 derniers jours)
bio lim
bio lim le 31 Oct 2016
Commenté : Jeremy Hughes le 1 Nov 2016
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 commentaire
Jeremy Hughes
Jeremy Hughes le 1 Nov 2016
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.

Connectez-vous pour commenter.

Réponses (1)

KSSV
KSSV le 31 Oct 2016
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)) ;

Catégories

En savoir plus sur Language Support dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by