How to convert ascii data to floating point?
14 views (last 30 days)
Show older comments
YoungMin Ho
on 26 Nov 2016
Commented: YoungMin Ho
on 30 Nov 2016
Hi guys.
i have a problem with my project and i need your help.
the problem is about data type conversion.
i use an app to send gravity_sensor data via UDP on my phone.
This is a desription of the app i use.
%%%%%%%%%%%%%
USAGE INSTRUCTIONS:
The data is stored within the app as a float array. See the format below.
Format: [ X Acceleration, Y Acceleration, Z Acceleration, X Gravity, Y Gravity, Z Gravity, X Rotation Rate, Y Rotation Rate, Z Rotation Rate, X Orientation (Azimuth), Y Orientation (Pitch), Z Orientation (Roll), deprecated, deprecated, Ambient Light, Proximity, Keyboard Buttons 1 - 8 ]
%%%%%%%%%%%%%
and, i wrote these lines and get result in MATLAB.
fopen(UDPComIn);
csvdata=fscanf(UDPComIn)
ans =
KKun
this is the problem. what i wanted was floating point data like (-0.001). but, the result data type looked like ASCII code type.
so here are my question.
1) Is there any method to extract floating point data from a float array in UDP ?
2) if not, how can i convert ascii data to floating point?
i will wait your reply soon
0 Comments
Accepted Answer
Walter Roberson
on 26 Nov 2016
The default for fscanf on UDP objects is %c format, but the packets do not contain text. You should be using fread() on the UDP object, specifying '*float' . You might also need to specify the endian order; see https://www.mathworks.com/help/instrument/byteorder.html
More Answers (1)
Image Analyst
on 26 Nov 2016
That won't work. If you passed UDPComIn into fopen(), then it's a string with a filename in it. So you can't pass that in to fscanf. Anyway, you didn't even pass a file ID or a format specifier string into fscanf(). Check the documentation for fscanf(). Or use str2double() instead, if you can get your numbers in an ASCII string.
1 Comment
Walter Roberson
on 26 Nov 2016
"If you passed UDPComIn into fopen(), then it's a string with a filename in it."
That is not correct. You can fopen() on Serial objects and TCP objects and UDP objects.
See Also
Categories
Find more on Low-Level File I/O in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!