How to separate string data and convert it to number?

2 visualizzazioni (ultimi 30 giorni)
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

Risposte (2)

Stephen23
Stephen23 il 28 Feb 2017
Modificato: Stephen23 il 28 Feb 2017
>> 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 il 28 Feb 2017
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 Commenti
Setiawan Putra Hendratno
Setiawan Putra Hendratno il 28 Feb 2017
At least I can separate the data. Thank you. I'll try it in my supervisor's lab.
Vandana Rajan
Vandana Rajan il 1 Mar 2017
@Stephen Cobeldick,
Yeah. I missed that part. Thanks for mentioning that :)

Accedi per commentare.

Categorie

Scopri di più su Characters and Strings 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!

Translated by