Dividing the string data

2 visualizzazioni (ultimi 30 giorni)
SungMin Park
SungMin Park il 22 Mar 2021
Commentato: SungMin Park il 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이 나누어 집니다.
이런 상황에서는 어떻게 데이터를 처리하면 좋을까요?

Risposta accettata

Rik
Rik il 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

Più risposte (0)

Categorie

Scopri di più su 문자형과 string형 in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!