Поддерживаемые операции для комплексных данных

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 как язык действий

a * b

1

Умножение.

Умножение.

a / b

1

Деление.

Не поддерживается. Используйте \ операция в функции MATLAB. См. «Выполнение комплексного деления с функцией MATLAB».

a + b

2

Сложение.

Сложение.

a - b

2

Вычитание.

Вычитание.

a == b

3

Сравнение, равное.

Сравнение, равное.

a ~= b

3

Сравнение, не равное.

Сравнение, не равное.

a != b

3

Не поддерживается. Используйте операционную a ~= b.

Сравнение, не равное.

a <> b

3

Не поддерживается. Используйте операционную a ~= b.

Сравнение, не равное.

Унарные операции и действия

В этой таблице обобщена интерпретация всех унарных операций и действий по комплексным данным. Унарные операции:

  • Имеют более высокий приоритет, чем двоичные операторы.

  • Правые ассоциативные так, что в любом выражении они вычисляются справа налево.

Операция

MATLAB как язык действий

C как язык действий

-a

Отрицательный.

Отрицательный.

a++

Не поддерживается. Используйте выражение a = a+1.

Шаг. Эквивалентно a = a+1.

a--

Не поддерживается. Используйте выражение a = a-1.

Уменьшение. Эквивалентно a = a-1.

Операции назначения

В этой таблице обобщена интерпретация операций назначения в диаграммах Stateflow.

Операция

MATLAB как язык действий

C как язык действий

a = b

Простое назначение.

Простое назначение.

a += b

Не поддерживается. Используйте выражение a = a+b.

Эквивалентно a = a+b.

a -= b

Не поддерживается. Используйте выражение a = a-b.

Эквивалентно a = a-b.

a *= b

Не поддерживается. Используйте выражение a = a*b.

Эквивалентно a = a*b.

Доступ к реальным и мнимым частям комплексного числа

Для доступа к действительной и мнимой частям комплексного числа используйте 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))

См. также

| | |

Похожие темы