Localize the third vector position using regexp
3 次查看(过去 30 天)
显示 更早的评论
Hello everyone,
I am analyzing some data files in a loop, which look like this:
#------------------------------------------------------
# Atomistic spin configuration file for vampire v5+
#------------------------------------------------------
# Date: Thu Dec 21 02:16:27 2023
#------------------------------------------------------
Time: 1e-10
Field: -0 -0 -3
Temperature: 0
Magnetisation: 0.0276355 0.000325712 -0.999618
#------------------------------------------------------
Number of spin files: 1
spins-00000000.data
In particular, I am interested in the information localized after "Field:", which has the form of a three-dimensional vector (-0,-0,-3). I want to be able to have access to the third component of this vector, "-3". If I use:
field_str=regexp(meta_file_read,'(?<=^Field:\s+)\S+','match','lineanchors');
I am able to obtain the information localized in the first component of the field vector, "-0". Is there an efficient way to access the third component of the field vector using regexp?
0 个评论
采纳的回答
Stephen23
2023-12-23
txt = fileread('test.txt')
rgx = '(?<=Field(\S+\s+){3})\S+';
out = regexp(txt,rgx,'once','match')
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 String Parsing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!