Extract only numbers from a text file with Matlab

3 次查看(过去 30 天)
In my txt file I have many lines with the following form:
I want to extract only the numbers that are between “ ” and after and only after x= and y=.
<Point x="-1.16804" y="-0.18000" z="1.60000" i="0.000000" j="0.000000" k="1.000000" u="1.000000" v="0.000000" w="0.000000" />
<Point x="-6.54428" y="-0.12000" z="1.60000" i="0.000000" j="0.000000" k="1.000000" u="1.000000" v="0.000000" w="0.000000" />
<Point x="-0.68936" y="-0.12000" z="1.60000" i="0.000000" j="0.000000" k="1.000000" u="1.000000" v="0.000000" w="0.000000" />
<Point x="-6.85390" y="-0.06000" z="1.60000" i="0.000000" j="0.000000" k="1.000000" u="1.000000" v="0.000000" w="0.000000" />
Can anyone help me?
Thank you.

采纳的回答

Walter Roberson
Walter Roberson 2020-6-29
I recommend using regexp with named tokens and the 'names' option. For example
parts = regexp(S, 'x="(?<x>[^"])"\s+y="(?<y>[^"])', 'names')
parts would then be a struct array of character vectors with fields x and y
x = str2double({parts.x} );
y = str2double({parts.y} );
  3 个评论
Walter Roberson
Walter Roberson 2020-6-30
str = fileread('code_trajectoire.txt');
parts = regexp(str, 'x="(?<x>[^"]+)"\s+y="(?<y>[^"]+)', 'names');
x=str2double({parts.x});
y=str2double({parts.y});

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 String Parsing 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by