MATLAB Answers

0

Find the number after a string

Asked by Anton Fernando on 4 Nov 2019
Latest activity Commented on by Anton Fernando on 5 Nov 2019
I have a text file containing data blocks. Those blocks are pretty much repetitive. They look like this (added two blocks in bold). There are around 50 blocks like this in the file.
P(22)
Standard Deviation of Fit : 0.00002
Amp 0.0266336611 8.772e-05
nu0 4159.5744620000 1.304e-04
glw 0.0166124171 3.044e-05
nlw 0.0000000000
4159.5695 0.02079 0.02075 0.00004
4159.5699 0.02172 0.02170 0.00002
4159.5704 0.02260 0.02260 0.00000
4159.5709 0.02342 0.02343 -0.00001
4159.5714 0.02416 0.02418 -0.00002
4159.5718 0.02482 0.02484 -0.00002
4159.5723 0.02539 0.02541 -0.00002
4159.5728 0.02586 0.02588 -0.00002
4159.5732 0.02622 0.02624 -0.00001
4159.5737 0.02648 0.02648 -0.00001
4159.5742 0.02661 0.02661 -0.00000
4159.5747 0.02663 0.02662 0.00001
4159.5751 0.02653 0.02652 0.00001
4159.5756 0.02631 0.02629 0.00002
4159.5761 0.02597 0.02595 0.00002
4159.5765 0.02552 0.02550 0.00002
4159.5770 0.02497 0.02495 0.00002
4159.5775 0.02432 0.02430 0.00001
4159.5780 0.02357 0.02357 0.00001
4159.5784 0.02275 0.02275 -0.00001
4159.5789 0.02185 0.02187 -0.00002
4159.5794 0.02089 0.02092 -0.00003
Integrated Cross Section (cm/molecule) : 1.537395e-20
Einstein A Coefficient (1/sec) : 2.097433e-01
R(23)
Standard Deviation of Fit : 0.00000
Amp 0.0237399264 1.270e-05
nu0 4331.0183720000 1.326e-05
glw 0.0166937170 2.409e-06
nlw 0.0000000000
4331.0146 0.02059 0.02058 0.00001
4331.0151 0.02128 0.02127 0.00000
4331.0155 0.02190 0.02190 -0.00000
4331.0160 0.02244 0.02244 -0.00000
4331.0165 0.02289 0.02290 -0.00000
4331.0169 0.02325 0.02326 -0.00000
4331.0174 0.02352 0.02352 -0.00000
4331.0179 0.02368 0.02368 0.00000
4331.0183 0.02374 0.02374 0.00000
4331.0188 0.02370 0.02369 0.00000
4331.0193 0.02354 0.02354 0.00000
4331.0198 0.02329 0.02329 0.00000
4331.0202 0.02294 0.02294 0.00000
4331.0207 0.02249 0.02249 0.00000
4331.0212 0.02196 0.02196 -0.00000
4331.0216 0.02134 0.02134 -0.00000
4331.0221 0.02065 0.02065 -0.00000
Integrated Cross Section (cm/molecule) : 2.026560e-20
Einstein A Coefficient (1/sec) : 2.747273e-01
I need two values from each block (bolded values).
From the first block;
P(22) and the number after the 'Integrated Cross Section (cm/molecule) :' which is 1.537395e-20.
From the second block;
R(23) and the number after the 'Integrated Cross Section (cm/molecule) :'. which is 2.026560e-20.
.....so on for all 50 blocks..
Any help is much appreciated.

  0 Comments

Sign in to comment.

1 Answer

Answer by Sean de Wolski
on 4 Nov 2019
 Accepted Answer

Something like this:
s = string(fileread(your_file))
val = extractBetween(s, "Einstein A Coefficient (1/sec) :", newline)
double(val)

  1 Comment

works. Thanks.

Sign in to comment.