Save numbers after text pattern in a vector
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Dear all
I have a text file that looks like these:
#------------------------------------------------------
# Atomistic spin configuration file for vampire v5+
#------------------------------------------------------
# Date: Wed Jul 31 19:19:54 2024
#------------------------------------------------------
Time: 1e-15
Field: 0 0 0
Temperature: 0.05
Magnetisation: -0.999883 0.0152572 -0.000478932
#------------------------------------------------------
Number of spin files: 1
spins-00000000.data
#------------------------------------------------------
I am interested in saving in an array the three numerical values after "Field:". I have tried something like
field_str=regexp(meta_file_read,'(?<=^TField:\s+)(\S+)\s*(\S+)\s*(\S+)','match','lineanchors'); % T
But the cell seems to be empty.
Any ideas?
0 Kommentare
Antworten (1)
Rik
am 2 Aug. 2024
Having a typo in your needlessly complicated regex doesn't help:
meta_file_read=["#------------------------------------------------------"
"Time: 1e-15"
"Field: 0 0 0"
"Temperature: 0.05"
"Magnetisation: -0.999883 0.0152572 -0.000478932"
"#------------------------------------------------------"];
[field_str,tokens]=regexp(meta_file_read,...
'^Field:\s+(\S+)\s*(\S+)\s*(\S+)',...
'match','tokens')
tokens{3}{1}
0 Kommentare
Siehe auch
Kategorien
Mehr zu String Parsing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!