主要内容

使用字符串管理文本信息

可以通过使用字符串创建文本数据来控制图表行为和输出易于阅读的文本。

创建字符串Stateflow

在Stateflow®,一个字符串是一段由双引号括起的文本(...).此外,单引号字符串(...)在使用C作万博1manbetx为动作语言的图表中得到支持。例如,这个图表接受字符串数据作为输入。基于该输入,图表生成相应的字符串输出。

使用字符串输入在开和关两种状态之间切换的图表。"height=

要指定字符串符号,首先打开属性检查器.在符号窗格中,选择要转换为字符串的数据。在属性检查器,设置类型字符串.Stateflow动态地为这种类型的数据分配内存空间。

使用字符串进行计算

要在状态流图中操作字符串数据,请使用该表中的操作符。

目标 MATLAB动作语言函数 例子 C动作语言函数 例子

连接两个字符串

+
h =“你好,”w =“世界!”X = + (h,w)
strcat
s1 =“状态”;s2 =“流”;Dest = strcat(s1,s2);

确定字符串的长度

strlength
h =“你好,世界!”X = strlength(h)
strlen
L = strlen(“Stateflow”);

将字符串转换为double类型

str2double
X = str2double(“-12.345”);
str2double
X = str2double(“-12.345”);

将数值型、布尔型或枚举型数据转换为字符串

字符串
A = [1307];STR = string(a)
tostring
dest = tostring(RED);

字符串截断

您还可以创建具有最大字符数的字符串数据。将符号指定为缓冲区大小为的字符串n字符,设置类型字段的符号stringtype (n.字符串的文本可以比缓冲区短,但如果字符串长度超过缓冲区大小,则字符串中的文本将被截断。例如,如果类型符号的属性输出在前面的图表中是stringtype (10),则其状态值被截断为“所有系统”

您可以启用字符串截断检查参数来选择当字符串超过指定的长度时是停止模拟还是生成警告stringtype (n)

字符串截断检查 描述
错误 模拟在出现错误时停止。
警告 字符串被截断。模拟继续,并发出警告。
没有一个 字符串被截断。模拟继续进行,没有错误或警告。

请注意

与C或c++不同,Stateflow将转义序列解释为文字字符。例如,字符串“\ n”包含两个字符,反斜杠和n,没有换行符。

用MATLAB和C作为动作语言的图表的区别

使用C作为动作语言的图表中的字符串与使用MATLAB的图表之间的关键区别®包括:

  • 使用MATLAB作为操作语言的图表只支持用双引号括起来的字符串。万博1manbetx在使用C作为动作语言的图表中,字符串可以使用双引号或单引号。

  • 在使用MATLAB作为动作语言的图表中,比较字符串返回1(真正的)当字符串匹配时。在使用C语言作为动作语言的图表中,比较字符串返回0

  • 在使用MATLAB作为动作语言的图表中,比较字符串返回布尔值。在使用C语言作为动作语言的图表中,比较字符串返回双精度值。

  • 若要返回字符串的长度,请使用strlength在使用MATLAB作为动作语言的图表中strlen在使用C作为动作语言的图表中。

  • 方法连接字符串+用MATLAB作为动作语言的图表运算strcat在使用C作为动作语言的图表中。

  • 使用MATLAB作为动作语言的图表在使用时强制输出变量的复杂性str2double

  • 使用MATLAB作为动作语言的图表支持所有的比较操作,例如万博1manbetx><,或= =

限制

参数数据不能是字符串。

使用MATLAB作为动作语言的图表存在以下局限性:

  • 常量数据不能是字符串。

  • 不支持以下操作符:万博1manbetx

    • strcat

    • 提取

    • extractBetween

    • sscanf

    • 组成

    • 附加

    • sfprint

  • 结构只能使用以下操作符:

    • isstring

    • 比较字符串

    • 字符串

    • strlength

    有关状态流结构的更多信息,请参见通过状态流结构访问总线信号

另请参阅

||||||||

相关的话题