Reading numeric value from COM port

1 回表示 (過去 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 Center および File ExchangeStandard File Formats についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by