Вы можете поведение диаграммы управления и выводить легкий для чтения текст при помощи строк, чтобы создать текстовые данные.
В Stateflow®, string является частью текста, окруженного двойными кавычками ("
..."
). Кроме того, одно заключенные в кавычки строки ('
...'
) поддерживаются в графиках, которые используют C в качестве языка действия. Например, этот график берет данные о строке в качестве входа. На основе того входа график производит соответствующую строку выход.
Чтобы задать символ строки, откройте сначала Property Inspector. В панели Символов выберите данные, которые вы хотите преобразовать в строку. В панели Property Inspector, набор Type к string
. Stateflow динамически выделяет пространство памяти для этого типа данных.
Чтобы управлять данными о строке в диаграмме Stateflow, используйте операторы в этой таблице. Для полного списка строковых операторов смотрите Операторы Языка Действия MATLAB и Операторы Языка Действия C.
Цель | Функция языка действия MATLAB | Пример | C язык действия Funtion | Пример |
---|---|---|---|---|
Конкатенация двух строк | plus |
h = "Hello," w = " world!" x = plus(h,w) | strcat |
s1 = "State"; s2 = "flow"; dest = strcat(s1,s2); |
Определите длину строки | strlength |
h = "Hello, world!"
x = strlength(h) | strlen |
L = strlen("Stateflow"); |
Преобразуйте строку в двойное | str2double |
X = str2double("-12.345"); | str2double |
X = str2double("-12.345"); |
Преобразуйте числовые, булевы, или перечисленные данные, чтобы представить в виде строки | строка |
a = [1307]; str = string(a) | tostring |
dest = tostring(RED); |
Можно также создать данные о строке количество имеющее символов. Задавать символ как строку с buffer size n
символы, набор поле Type символа к stringtype (
. Текст строки может быть короче, чем буфер, но если длина строки превышает buffer size, то текст в строке является усеченным. Например, если свойство Type символа n
)output
в предыдущем графике stringtype(10)
, затем его значение в On
состояния является усеченным к
"All system"
.
В графиках, которые используют C в качестве языка действия, можно позволить параметру String truncation checking выбрать, остановить ли симуляцию или сгенерировать предупреждение, когда строка превышает длину, заданную stringtype(n)
.
Представьте проверку усечения в виде строки | Описание |
---|---|
error | Симуляция останавливается с ошибкой. |
warning | Строка является усеченной. Симуляция продолжает предупреждение. |
none | Строка является усеченной. Симуляция не продолжает ошибки или предупреждения. |
Для графиков то использование MATLAB® как язык действия, не поддерживается параметр String truncation checking, и симуляция всегда останавливается с ошибкой, если строка превышает buffer size.
Примечание
В отличие от C или C++, Stateflow интерпретирует escape-последовательности как буквенные символы. Например, строка "\n"
содержит два символа, обратную косую черту и n
, и не один символ новой строки.
Основные отличия между строками в графиках, которые используют C в качестве языка действия и графиков, которые используют MATLAB, включают:
Графики, которые используют MATLAB в качестве поддержки языка действия только, представляют в виде строки заключенный с двойными кавычками. В графиках, которые используют C в качестве языка действия, строки могут использовать двойные кавычки или одинарные кавычки.
В графиках, которые используют MATLAB в качестве языка действия, strcmp
возвращает 1 (true)
когда строки соответствуют. В графиках, которые используют C в качестве языка действия, strcmp
возвращает 0
.
В графиках, которые используют MATLAB в качестве языка действия, strcmp
возвращает boolean. В графиках, которые используют C в качестве языка действия, strcmp
возвращает двойное.
Чтобы возвратить длину строки, используйте strlength
в графиках, которые используют MATLAB в качестве языка действия и strlen
в графиках, которые используют C в качестве языка действия.
Чтобы конкатенировать строку, используйте +
операция в графиках, которые используют MATLAB в качестве языка действия и strcat
в графиках, которые используют C в качестве языка действия.
Графики, которые используют MATLAB в качестве языка действия, осуществляют сложность на выходной переменной при использовании str2double
.
Графики, которые используют MATLAB в качестве языка действия, поддерживают все операции сравнения, такие как >
, <
, или ==
.
Данные о параметре не могут быть строками.
Нижеследующие ограничения существуют для графиков, которые используют MATLAB в качестве языка действия:
Постоянные данные не могут быть строками.
Эти операторы не поддерживаются:
strcat
extract
extractBetween
sscanf
compose
append
pad
count
sfprint
forward
hasChangedFrom
hasChangedTo
Таблицы переходов состояний и блоки Таблицы истинности не поддерживают строки.
Структуры могут только использовать эти операторы:
isstring
strcmp
string
strlength
Для получения дополнительной информации о структурах Stateflow, смотрите доступ к Сигналам Шины Через Структуры Stateflow.
ascii2str | str2ascii | str2double | strcat | strcmp | strcpy | strlen | substr | tostring