How to make this string a = '(0 0 0)' into a double b = [0 0 0]?

2 vues (au cours des 30 derniers jours)
Wictor Oliveira
Wictor Oliveira le 5 Août 2022
Commenté : Walter Roberson le 5 Août 2022
Suppose I don't know what are the number inside the a string, it could be:
a = '(12 2.8 1.22)' % each number is separated by a single space
which should then be:
b = [12 2.8 1.22]

Réponse acceptée

Kevin Holly
Kevin Holly le 5 Août 2022
a = '(12 2.8 1.22)'
a = '(12 2.8 1.22)'
a = strrep(a,')',']');
a = strrep(a,'(','[');
b = str2num(a)
b = 1×3
12.0000 2.8000 1.2200

Plus de réponses (1)

Fangjun Jiang
Fangjun Jiang le 5 Août 2022
Modifié(e) : Fangjun Jiang le 5 Août 2022
a = '(12 2.8 1.22)';
b=sscanf(a,'(%f %f %f)')
b = 3×1
12.0000 2.8000 1.2200
b=transpose(sscanf(a,'(%f %f %f)'))
b = 1×3
12.0000 2.8000 1.2200
  2 commentaires
Wictor Oliveira
Wictor Oliveira le 5 Août 2022
Great!!! Thank you very much!!!
Walter Roberson
Walter Roberson le 5 Août 2022
This is more robust.

Connectez-vous pour commenter.

Produits


Version

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by