Reading numeric value from COM port

3 次查看(过去 30 天)
Jan De Vries
Jan De Vries 2011-10-15
I try to use fscanf( ) to get the numeric heading of an electronic compass. The compass is sending data through COM1 with NMEA standard. When I open the port, and use FSCANF(ser) I get
ans =
$HCHDG,49.0,,,,
My problem is: how to filter the 49.0 out of this string, and convert it to a numeric value (eg float) so I can use it for calculations?

回答(1 个)

Walter Roberson
Walter Roberson 2011-10-15
textscan(). Or fscanf() or sscanf(). Or strfind() and index to extract the number as a string and str2double() it. Or regexp() to extract the number as a string and str2double() it.
A format of '%*7c' would eat the '$HCHDG,' and discard it.
  2 个评论
Jan De Vries
Jan De Vries 2011-10-15
Thanks! It works with the str2double() function.
Is this also possible in simulink?
Walter Roberson
Walter Roberson 2011-10-15
Sorry, I am not familiar enough with simulink. I am sure there is _some_ way, but I do not know if there is a "nice" way.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Standard File Formats 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by