exponenta event banner

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

Диаграммы 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))

См. также

| | |

Связанные темы