How to read the entire column of a file and save it in a variable?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Dear All I have the below text file (part of it).
=====================================================================
24652 1996-063A ARABSAT-2B
Launched: 1996-11-13 (318) Start Date: 1996-06-12 (164)
Decayed: Stop Date: 2003-12-20 (354)
=====================================================================
1 24652U 96063A 96318.74847837 -.00000020 00000-0 00000+0 0 14
2 24652 3.9929 210.6007 7281127 177.7757 190.4436 2.27277888 06
1 24652U 96063A 96319.62211352 -.00000020 00000-0 00000+0 0 31
2 24652 3.9929 210.3183 7284735 178.4392 185.2995 2.27373269 12
1 24652U 96063A 96319.62351606 .00008082 00000-0 30835-2 0 24
2 24652 3.9764 210.1654 7280836 178.5436 186.6267 2.27380102 20
1 24652U 96063A 96319.62356237 .00009638 00000-0 38025-2 0 37
2 24652 3.9632 210.3512 7280110 178.4006 186.6625 2.27374993 25
1 24652U 96063A 96320.05952563 -.00002597 00000-0 -98092-3 0 63
2 24652 3.9623 210.1661 7275699 178.7092 185.6294 2.27896863 39
1 24652U 96063A 96320.49676119 -.00000127 00000-0 10000-4 0 72
I am using the following code to read the each line.
fid=fopen('2B.txt');
A=textscan(fid,'%s','HeaderLines',5);
Data=reshape(A{1}(1:end-3,:),9,[])';
fclose(fid);
l1=Data(1:2:end,:);
l2=Data(2:2:end,:);
I want to read all the elements of line 1 (l1) column 4(i.e. 96318.74847837, 96319.6221135296, and so on..)
I tried t=l1(:,4) but it doesn't work. It only displays 96318.74847837
please help.
2 commentaires
Réponse acceptée
Azzi Abdelmalek
le 22 Sep 2012
Modifié(e) : Azzi Abdelmalek
le 22 Sep 2012
fid=fopen('2B.txt');
A=textscan(fid,'%s','HeaderLines',5);
fclose(fid);
n=numel(A{:});
Data=reshape(A{1},9,[])';
l1=Data(1:2,:);
l2=Data(2:2,:);
t=l1(:,4:end)
%or using fgetl.
fid = fopen('2B.txt');
tline = fgetl(fid);
out=tline
while ischar(tline)
tline = fgetl(fid);
out=char(out,tline)
end
fclose(fid);
n=size(out,1);
res=[]
for k=6:n
r=regexp(out(k,:),' ','split')
r1=cell2mat(cellfun(@(x) ~isempty(x),r,'Uni',false))
r2=r(r1)
res=[res;cellfun(@(x) str2num(x),r2(4:end))]
end
3 commentaires
Plus de réponses (1)
bym
le 22 Sep 2012
try using this
A=textscan(fid,repmat('%s',1,9),'HeaderLines',5);
>> A{4}(1:2:end)
ans =
'96318.74847837'
'96319.62211352'
'96319.62351606'
'96319.62356237'
'96320.05952563'
'96320.49676119'
0 commentaires
Voir également
Catégories
En savoir plus sur Spreadsheets dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!