How to separate string data and convert it to number?

조회 수: 2 (최근 30일)
Setiawan Putra Hendratno
Setiawan Putra Hendratno 2017년 2월 28일
댓글: Vandana Rajan 2017년 3월 1일
I have a problem to separate this data BE1234U1234 which B is the begin of counting real time count for sensor, i.e. encoder motor and ultrasonic distance, E for encoder, and U for ultrasonic distance.
I'm using Altera to acquired data and read it to MATLAB. But I can only separate the data from B1234E for encoder only. How can I read and separate the data into 1234 for encoder and 1234 for ultasonic distance respectively?
Thank You,
Setiawan

답변 (2개)

Stephen23
Stephen23 2017년 2월 28일
편집: Stephen23 2017년 2월 28일
>> str = 'BE1234U1234';
>> sscanf(str,'BE%dU%d')
ans =
1234
1234
for example:
>> str = 'BE1234U5678';
>> vec = sscanf(str,'BE%dU%d');
>> enc = vec(1)
enc = 1234
>> ult = vec(2)
ult = 5678

Vandana Rajan
Vandana Rajan 2017년 2월 28일
Hi,
' ismember ' function can help you here.
>> [e_val, e_pos] = ismember('E',c);
>> [u_val, u_pos] = ismember('U',c);
>> enc_val = c(e_pos+1:u_pos-1)
enc_val =
1234
>> ultra_val = c(u_pos+1:end)
ultra_val =
1234
  댓글 수: 3
Setiawan Putra Hendratno
Setiawan Putra Hendratno 2017년 2월 28일
At least I can separate the data. Thank you. I'll try it in my supervisor's lab.
Vandana Rajan
Vandana Rajan 2017년 3월 1일
@Stephen Cobeldick,
Yeah. I missed that part. Thanks for mentioning that :)

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

카테고리

Help CenterFile Exchange에서 Characters and Strings에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by