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))