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