How to separate string data and convert it to number?

2 visualizaciones (últimos 30 días)
Setiawan Putra Hendratno
Setiawan Putra Hendratno el 28 de Feb. de 2017
Comentada: Vandana Rajan el 1 de Mzo. de 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

Respuestas (2)

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

Iniciar sesión para comentar.

Categorías

Más información sobre Characters and Strings en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by