Комплексными данными являются данные, значение которых является комплексным числом. Для примера, в Stateflow® график в Simulink® модель, входной сигнал со значением 3 + 5i комплексная. См. «Комплексные данные в диаграммах Stateflow».
Когда вы используете комплексные данные в диаграммах Stateflow, которые используют C в качестве языка действий, следуйте этим лучшим практикам.
Математические функции, такие как sin, cos, min, max, и abs не работайте со комплексными данными в графики. Однако можно использовать MATLAB® функция на графике для выполнения операций математической функции над комплексными данными.
На следующем графике функция MATLAB вычисляет абсолютное значение комплексного числа:

Значение comp_num является 1+2i. Вычисление абсолютного значения дает ответ 2.2361.
Предположим, что вы хотите найти абсолютное значение комплексного числа. Выполните следующие действия:
Добавьте функцию MATLAB к графику с этой подписью:
y = myabs(u)
Дважды кликните окно функции, чтобы открыть редактор.
В редакторе введите код ниже:
function y = myabs(u) %#codegen y = abs(u);
Функция myabs принимает комплексный вход u и возвращает абсолютное значение как выход y.
Сконфигурируйте входной параметр u для принятия комплексных чисел.
Откройте Model Explorer.
На панели Model Hierarchy Model Explorer перейдите к функции MATLAB myabs.
На панели Contents Model Explorer щелкните правой кнопкой мыши по входному параметру u и выберите Properties из контекстного меню.
В диалоговом окне «Свойства данных» выберите On в поле Complexity и нажмите OK.
Вы не можете передать вещественные значения входных параметров функции комплексного типа. Для получения дополнительной информации смотрите Правила использования комплексных данных в графиках С.
Деление со сложными операндами недоступно в качестве двоичной операции или операции назначения в графиках С. Однако можно использовать функцию MATLAB на графике, чтобы выполнить деление на комплексных данных.
На следующем графике функция MATLAB выполняет деление на два сложных операнда:

Значения comp_num и comp_den являются 1+2i и 3+4i, соответственно. Деление этих значений дает ответ 0.44+0.08i.
Чтобы разделить два комплексных числа:
Добавьте функцию MATLAB к графику с помощью этой сигнатуры функции:
y = mydiv(u1, u2)
Дважды кликните окно функции, чтобы открыть редактор.
В редакторе введите код ниже:
function y = mydiv(u1, u2) %#codegen y = u1 / u2;
Функция mydiv принимает два сложных входов, u1 и u2, и возвращает комплексный частный двух чисел как выхода y.
Сконфигурируйте входные и выходные аргументы, чтобы принять комплексные числа.
Откройте Model Explorer.
На панели Model Hierarchy Model Explorer перейдите к функции MATLAB mydiv.
Для каждого входного и выходных аргументов выполните следующие шаги:
На панели Contents Model Explorer щелкните правой кнопкой мыши аргумент и выберите Properties из контекстного меню.
В диалоговом окне «Свойства данных» выберите On в поле Complexity и нажмите OK.
Вы не можете передать вещественные значения входных параметров функции комплексного типа. Для получения дополнительной информации смотрите Правила использования комплексных данных в графиках С.