Dividing the string data

10 次查看(过去 30 天)
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이 나누어 집니다.
이런 상황에서는 어떻게 데이터를 처리하면 좋을까요?

采纳的回答

Rik
Rik 2021-3-22
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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Statistics and Machine Learning Toolbox 的更多信息

Community Treasure Hunt

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

Start Hunting!