Диаграммы Stateflow ® в моделях Simulink ® имеют свойство языка действий, которое определяет синтаксис, используемый для вычисления сложных данных. Свойства языка действий:
MATLAB ® в качестве языка действий.
C как язык действий.
Дополнительные сведения см. в разделе Различия между MATLAB и C как синтаксисом языка действий.
В диаграммах, использующих MATLAB в качестве языка действий, можно определить сложные данные с помощью нотации комплексного числа. a + bi, где a и b вещественные числа. Например, этот оператор присваивает значение 3 + 4i x:
x = 3 + 4i;
Кроме того, можно определить сложные данные с помощью complex оператор:
complex(<real_part>,<imag_part>)
<real_part> и <imag_part> - аргументы, определяющие действительную и мнимую части комплексного числа соответственно. Два аргумента должны быть действительными значениями или выражениями, которые вычисляются до действительных значений. Как и в предыдущем примере, этот оператор присваивает значение 3 + 4i x:
x = complex(3,4);
Диаграммы, использующие C в качестве языка действий, не поддерживают нотацию сложных чисел a + bi. Чтобы определить комплексное число на основе двух вещественных значений, используйте complex оператор.
Эта таблица суммирует интерпретацию всех двоичных операций над сложными операндами в соответствии с их порядком приоритетности (1 = самый высокий, 3 = самый низкий). Бинарные операции остаются ассоциативными, так что в любом выражении операторы с одинаковым приоритетом вычисляются слева направо.
Операция | Предшествование | MATLAB как язык действий | C как язык действий |
|---|---|---|---|
| 1 | Умножение. | Умножение. |
| 1 | Дивизия. | Не поддерживается. Используйте |
| 2 | Дополнение. | Дополнение. |
| 2 | Вычитание. | Вычитание. |
| 3 | Сравнение, равно. | Сравнение, равно. |
| 3 | Сравнение, не равное. | Сравнение, не равное. |
| 3 | Не поддерживается. Использовать операцию | Сравнение, не равное. |
| 3 | Не поддерживается. Использовать операцию | Сравнение, не равное. |
В этой таблице обобщена интерпретация всех унарных операций и действий со сложными данными. Унарные операции:
Имеют более высокий приоритет, чем двоичные операторы.
Являются правыми ассоциативными, так что в любом выражении они вычисляются справа налево.
Операция | MATLAB как язык действий | C как язык действий |
|---|---|---|
| Отрицательный. | Отрицательный. |
| Не поддерживается. Использовать выражение | Приращение. Эквивалентно |
| Не поддерживается. Использовать выражение | Уменьшение. Эквивалентно |
В этой таблице представлена интерпретация операций назначения в диаграммах Stateflow.
Операция | MATLAB как язык действий | C как язык действий |
|---|---|---|
| Простое назначение. | Простое назначение. |
| Не поддерживается. Использовать выражение | Эквивалентно |
| Не поддерживается. Использовать выражение | Эквивалентно |
| Не поддерживается. Использовать выражение | Эквивалентно |
Для доступа к действительной и мнимой частям комплексного числа используйте real и imag операторов.
real Оператор real оператор возвращает значение вещественной части комплексного числа:
real(<complex_expr>)
<complex_expr> - выражение, которое вычисляется как комплексное число. Например, если frame(200) вычисляется как комплексное число 8.23 + 4.56i, это выражение возвращает значение 8.2300:
real(frame(200))
imag Оператор imag оператор возвращает значение мнимой части комплексного числа:
imag(<complex_expr>)
<complex_expr> - выражение, которое вычисляется как комплексное число. Например, если frame(200) вычисляется как комплексное число 8.23 + 4.56i, это выражение возвращает значение 4.5600:
imag(frame(200))