Scan String - Scan input string and convert to signals per specified format - Simulink (original) (raw)

Scan input string and convert to signals per specified format

Libraries:
Simulink / String

Description

The Scan String block scans an input string and converts it to signals per the format specified by the Format parameter. The block converts values to their decimal (base 10) representation and outputs the results as numeric or string signals. Use this block when you want to deconstruct a string, for example a sentence, into its individual components. For example, if theFormat parameter is set to "%s is %f.", the block outputs two parts, a string signal and a single signal. If the input is the string"Pi is 3.14", the two outputs are "Pi" and"3.14".

Note

If you specify a numeric display format that is not large enough to display all the digits of a value, the displayed values may lose precision. The result depends on your computer hardware and operating system.

The Scan String, String to Double, and String to Single blocks are identical blocks. When configured for String to Double, the block converts the input string signal to a double numerical output. When configured for String to Single, the block converts the input string signal to a single numerical output.

For code generation, configure models that contain this block for non-finite number support by selecting the > > > check box.

Ports

Input

expand all

Input string, specified as a scalar.

Data Types: string

Output

expand all

Output data whose format matches the specified format, defined as a scalar. Total maximum number of outputs is 128.

If the block cannot match an input string to a format operator specified in Format, it returns a warning and outputs an appropriate value (0 or"") for each unmatched format operator.

Data Types: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point | enumerated | bus

Output data whose format matches the %f format, specified as a scalar. Total maximum number of outputs is 128.

Data Types: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point | enumerated | bus

Output data whose format matches N format, specified as a scalar. Total maximum number of outputs is 128.

Data Types: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point | enumerated | bus

Parameters

expand all

Format operator for input, specified as a scalar. If the block cannot match the input string with the specified format, it returns0. The return of 0 differs from the sscanf function return, which is an empty matrix if the function cannot match the input with the specified format.

For more information about acceptable format operators, see the Algorithms section.

Programmatic Use

Block Parameter: Format
Type: character vector
Values: ''
Default: '"%d %f"'

Block Characteristics

Data Types double | integer single string
Direct Feedthrough yes
Multidimensional Signals no
Variable-Size Signals no
Zero-Crossing Detection no

Algorithms

expand all

The Scan String block uses this format specifier prototype:

%[width][length]specifier

This table lists available conversion specifiers to convert text to numeric outputs. The block converts values to their decimal (base 10) representation.

Output Port Data Type Conversion Specifier Description
Integer, signed %d Base 10
Integer, unsigned %u Base 10
Floating-point number %f, %e, or%g Floating-point values. Input fields can containNaN (case sensitive). Input fields that represents floating-point numbers can include leading+ or - symbols and exponential notation using e orE. The conversion specifiers%f, %e, and%g all treat input fields the same way.

This table lists available conversion specifiers to convert text so that the output is a string.

Character Field Type Conversion Specifier Description
String scalar %s Read the text until the block encounters white space.
%c Read any single character, including white space. To read multiple characters at a time, specify field width. For example, %10c reads 10 characters at a time.
Pattern-matching %[...] Read only the characters in the brackets up to the first nonmatching character or white space.Example: %[mus] reads'summer' as'summ'.
%[^...] Read any characters not in the brackets up to the first matching character or white space.Example:%[^m] reads'summer' as'su'.

The Scan String block supports the h andl length subspecifiers. These specifiers can change according to the > > settings.

Length i u f e g s c […] [^...]
No length specifier int unsigned int single string
h short unsigned short
l long unsigned long double

Extended Capabilities

Version History

Introduced in R2018a