String parsing

조회 수: 37 (최근 30일)
skyimager
skyimager 2012년 5월 30일
input string s='Temp : 34, Altitude : 35, Pressure : 45' . I now want to store Temp, Alt and Pressure value in three different Strings. How to do the parsing in this case..??? Pls help.

채택된 답변

Geoff
Geoff 2012년 5월 30일
It kinda depends on how flexible you need to be. Are the tags ever in a different order? Is the format EXACTLY as given? Are the numbers always integers?
Something as simple as this could work:
sscanf(s, 'Temp : %f, Altitude : %f, Pressure : %f')
[EDIT] Oh, sorry, you said "strings":
regexp(s, ':\s*(\d+),.*:\s*(\d+),.*:\s*(\d+)', 'tokens')
  댓글 수: 2
skyimager
skyimager 2012년 5월 30일
Thanks alot Sir. The actual data format is tragya$567$67$678$789$tragya , the first set of no should be stored as pressure value then the next set as temperature and so on. The order never changes.
Also can u please explain me how to from regular expressions for regexp function ? I mean what does s* (\d+) mean..???
Geoff
Geoff 2012년 5월 30일
\s* matches 0 or more whitespace characters. \d+ matches 1 or more digits (note that if you want to accept non-integers or negative values, you can probably get away with using \w+ which matches 1 or more non-whitespace characters) . The parentheses means I want to specifically extract the stuff inside. Read the help for regexp, or find regular expression tutorials on the internet. These things are not just confined to MatLab.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 String Parsing에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by