Filter löschen
Filter löschen

find numbers in a string

23 Ansichten (letzte 30 Tage)
EYAL COHEN
EYAL COHEN am 25 Jul. 2023
Verschoben: Bruno Luong am 25 Jul. 2023
Hi,
I have the following example of string 'E_Field (Farfield) (Cartesian) (-0 -1000 -1)(Abs) (cosim Tran1).txt' .
I need to extract the numbers between the brackets 0,1000,-1.
I have tried using the regexp function but without any success.
I will appriciate any kind of assistance.

Antworten (1)

Chunru
Chunru am 25 Jul. 2023
Bearbeitet: Chunru am 25 Jul. 2023
s = 'E_Field (Farfield) (Cartesian) (-0 -173.648 983.808)(Abs) (cosim Tran1).txt';
s1 = 'E_Field (Farfield) (Cartesian) (-0 -1000 -1)(Abs) (cosim Tran1).txt' ;
p = '(\(-?\d+ -?\d+(.\d*)? -?\d+(.\d*)?\))';
t=regexp(s, p, 'tokens');
t = t{1}{1}
t = '(-0 -173.648 983.808)'
n = sscanf(t, '(%f %f %f)')
n = 3×1
0 -173.6480 983.8080
t1=regexp(s1, p, 'tokens');
t1 = t1{1}{1}
t1 = '(-0 -1000 -1)'
n1 = sscanf(t1, '(%f %f %f)')
n1 = 3×1
0 -1000 -1
  5 Kommentare
Chunru
Chunru am 25 Jul. 2023
See above
EYAL COHEN
EYAL COHEN am 25 Jul. 2023
Verschoben: Bruno Luong am 25 Jul. 2023
It seems to work, I thank you for your help. A big help.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

Produkte


Version

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by