Reading numbers from a text file

How to read only numbers from the file of following format
(title "dm_m")
(labels "dm_m" "Position")
((xy/key/label "point_40")
0.000128835 18.1347
)
((xy/key/label "point_41")
-4.16311e-06 20.2711
)
((xy/key/label "point_42")
8.93259e-05 22.4074
)
((xy/key/label "point_43")
0.000130064 24.5438
)
((xy/key/label "point_44")
0.000131733 26.6802
)
((xy/key/label "point_45")
0.000147312 28.8166
)
((xy/key/label "point_46")
0.000141488 30.9529
)
((xy/key/label "point_47")
0.000136125 33.0893
)
)

 Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 17 Juil 2015
Modifié(e) : Azzi Abdelmalek le 17 Juil 2015

0 votes

Edit
fid=fopen('file.txt')
a=textscan(fid,'%s')
fclose(fid)
c=regexp(a{:},'\<(+|-|\.|\d)\d*(\.)?(\d+)?','match')
f=c(~cellfun(@isempty,c))
out=reshape(str2double([f{:}]'),2,[])

Plus de réponses (1)

Andrei Bobrov
Andrei Bobrov le 17 Juil 2015
Modifié(e) : Andrei Bobrov le 17 Juil 2015
f = fopen('data_in_your_format.txt');
c = textscan(f,'%s','delimiter','\n');
fclose(f);
c = c{:};
[~,~,~,z] = regexp(c,'-*\d+\.\d+(e-*\d+)*');
z1 = z(~cellfun(@isempty,z));
out = str2double(reshape([z1{:}],2,[])');

2 commentaires

DJ
DJ le 17 Juil 2015
Modifié(e) : Stephen23 le 17 Juil 2015
Thank you code 2 works perfectly if the numbers are positive but if numbers are negative it doesn't work. Is there some modification to be done? If the numbers are mix of positives and negatives
Andrei Bobrov
Andrei Bobrov le 17 Juil 2015
Modifié(e) : Andrei Bobrov le 17 Juil 2015
corrected 2

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by