Dividing the string data

8 vues (au cours des 30 derniers jours)
SungMin Park
SungMin Park le 22 Mar 2021
Commenté : SungMin Park le 25 Mar 2021
68753-9.990e+000 -9.900e-002 -9.990e-003-3.330e+000의 string을
68753 -9.990e+000 -9.900e-002 -9.990e-003 -3.330e+000처럼 데이터를 나누고 싶습니다.
그런데 구분자를 ' '로하면 68753-9.990e+000이 나누어 지지 않습니다.
그리고 구분자를 ' '와 '-'로 하면 -9.990e-003이 나누어 집니다.
이런 상황에서는 어떻게 데이터를 처리하면 좋을까요?

Réponse acceptée

Rik
Rik le 22 Mar 2021
You can split this with a regular expression.
str='68753-9.990e+000 -9.900e-002 -9.990e-003-3.330e+000';
RE=['[+-]?',... %start with an optional + or -
'[.\d]*',... %then the number itself: only digits or periods
'(e[+-]\d*)?'];%optionally followed by e with either + or - and several digits
nums=regexp(str,RE,'match')
nums = 1×5 cell array
{'68753'} {'-9.990e+000'} {'-9.900e-002'} {'-9.990e-003'} {'-3.330e+000'}
You can even send this result to str2double to convert them to their numeric values:
str2double(nums)
ans = 1×5
1.0e+04 * 6.8753 -0.0010 -0.0000 -0.0000 -0.0003
  1 commentaire
SungMin Park
SungMin Park le 25 Mar 2021
thank you ^^

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Statistics and Machine Learning Toolbox dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!