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

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

Смотрите также

| | |

Похожие темы