Azzera filtri
Azzera filtri

find numbers in a string

23 visualizzazioni (ultimi 30 giorni)
EYAL COHEN
EYAL COHEN il 25 Lug 2023
Spostato: Bruno Luong il 25 Lug 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.

Risposte (1)

Chunru
Chunru il 25 Lug 2023
Modificato: Chunru il 25 Lug 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 Commenti
Chunru
Chunru il 25 Lug 2023
See above
EYAL COHEN
EYAL COHEN il 25 Lug 2023
Spostato: Bruno Luong il 25 Lug 2023
It seems to work, I thank you for your help. A big help.

Accedi per commentare.

Categorie

Scopri di più su Characters and Strings in Help Center e File Exchange

Prodotti


Release

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by