How to separate string data and convert it to number?

2 vues (au cours des 30 derniers jours)
Setiawan Putra Hendratno
Setiawan Putra Hendratno le 28 Fév 2017
Commenté : Vandana Rajan le 1 Mar 2017
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

Réponses (2)

Stephen23
Stephen23 le 28 Fév 2017
Modifié(e) : Stephen23 le 28 Fév 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
  1 commentaire
Setiawan Putra Hendratno
Setiawan Putra Hendratno le 28 Fév 2017
How if the data is modified to 1234-1234 in Altera?

Connectez-vous pour commenter.


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

Connectez-vous pour commenter.

Catégories

En savoir plus sur Characters and Strings dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by