Различия между MATLAB и C как синтаксис языка действий

Stateflow® графики в Simulink® модели имеют свойство языка действий, которое задает синтаксис для действий состояния и перехода. Значок в левом нижнем углу холста графика указывает язык действий для графика.

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

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

MATLAB является синтаксисом языка действий по умолчанию для новых диаграмм Stateflow. Чтобы создать график, которая использует C в качестве языка действий, введите:

sfnew -c

Сравнение функциональности языков действий

В этой таблице перечислены наиболее существенные различия в функциональности между двумя языками действий.

ФункциональностьMATLAB как язык действийC как язык действий

Векторная и матричная индексация

Одно-основанное индексирование, разделенное круглыми скобками и запятыми. Для примера, A(4,5). См. «Поддерживаемые операции для векторов и матриц».

Индексация на основе нуля, разделенная квадратными скобками. Для примера, A[3][4]. См. «Поддерживаемые операции для векторов и матриц».

Конструкции C:

  • Операции приращения и сокращения a++ и a--

  • Операции назначения a += b, a –= b, a *= b, и a /= b

  • Операции оценки a != b и !a

  • Двухкомпонентные операции a %% b, a >> b, a << b, a & b, и a | b

  • Маркеры комментариев // и /* */

Автокоррекция синтаксиса MATLAB. Для примера, a++ исправлен на a = a+1. Смотрите раздел Автоматическая коррекция при использовании MATLAB в качестве языка действий.

Поддерживается. Смотрите Поддерживаемые операции для данных графика.

Условные и циклические операторы управления в состояниях активности

Поддерживается. Для примера можно использовать if, for, и while операторы в состояниях активности. См. Циклы и условные операторы.

Не поддерживается. Для условного и циклического шаблонов используйте вместо этого графические функции. См. «Повторное использование логических шаблонов путем определения графических функций».

Формат переходных действий

Автокоррекция заключает переходные действия в скобки {}. См. раздел «Переходные действия».

Не требуется заключать переходные действия в скобки {}. См. раздел «Переходные действия».

Упорядоченное расположение параллельных состояний

Только явное упорядоченное расположение. Смотрите Порядок выполнения для параллельных состояний.

Явное или неявное упорядоченное расположение. Смотрите Порядок выполнения для параллельных состояний.

Данные переменного размера

Доступ и изменение входных, выходных и локальных данных переменного размера в действиях состояния и перехода.

Доступ и изменение входных и выходных данных переменного размера при помощи:

  • Функции MATLAB

  • Функции Simulink

  • Таблицы истинности, которые используют MATLAB в качестве языка действий

Все расчеты с данными переменного размера должны происходить внутри этих функций, а не непосредственно в состояниях или переходах. Для получения дополнительной информации см. Руководство по использованию данных переменного размера.

Конструкции с фиксированной точкой:

  • Оператор специального назначения :=

  • Контекстно-зависимые константы, такие как 4.3C

Не поддерживается.

Поддерживается. Смотрите Переопределение промоушена с фиксированной точкой в графиках C и Контекстно-чувствительных константах с фиксированной точкой.

Комплексные данные

Используйте комплексное числовое обозначение a + bi или complex оператор. См. «Поддерживаемые операции для комплексных данных».

Используйте complex оператор. Комплексное числовое обозначение не поддерживается. См. «Поддерживаемые операции для комплексных данных».

Распространение типа данных

Следуйте правилам ввода MATLAB. Например, добавление данных типа double к данным типа int32 результаты в данных типа int32.

Следуйте правилам набора текста на C. Например, добавление данных типа double к данным типа int32 результаты в данных типа double.

Операции явного преобразования типов

Используйте одну из следующих форм литья:

  • Функция преобразования типа MATLAB. Для примера, single(x).

  • cast функция с ключевым словом type. Для примера, cast(x,'int8').

  • cast функция со 'like' ключевое слово. Для примера, cast(x,'like',z).

The type оператор не поддерживается. См. Раздел Операций приведения типов»

Используйте одну из следующих форм литья:

  • Функция преобразования типа MATLAB. Для примера, uint16(x).

  • cast функция со type оператор. Для примера, cast(x,type(z)).

Введите ключевые слова для cast функция не поддерживается. См. Раздел Операций приведения типов»

Скалярное расширение

Не поддерживается.

Поддерживается. См. «Присвоение значений всем элементам матрицы».
Строковые данные

Не поддерживается.

Поддерживается. См. «Управление текстовой информацией при помощи строк».

Спецификация свойств данных:

  • Первый индекс

  • Сохраните окончательное значение в базовом рабочем пространстве

  • Модули

Не поддерживается.

Поддерживается. Для получения дополнительной информации смотрите:

Возможности данных в графических, таблицах истинности и функциях MATLAB

Constant, Parameter, Input, OutputLocal, Constant, Parameter, Input, Output, Temporary

Запись через точку для определения состояний, локальных данных, сообщений и локальных событий внутри функций MATLAB

Поддерживается. См. «Идентификация данных при помощи записи через точку».

Не поддерживается.

Пользовательские функции и переменные кода

Поведение зависит от параметра конфигурации Import Custom Code.

  • Когда Import Custom Code включено, функции пользовательского кода и переменные поддерживаются в состояниях и переходах (по умолчанию).

  • Когда Import Custom Code отключено, поддерживаются только пользовательские функции кода. Используйте coder.ceval (MATLAB Coder) функция.

Смотрите Пользовательский код и Импорт Пользовательский код (Simulink).

Пользовательские функции и переменные кода поддерживаются в состояниях и переходах.

Массив с основной строкой, размещением в сгенерированном коде

Не поддерживается.

Поддерживается. См. Раздел «Основные строки Размещения»

Многомерное размещение массива в сгенерированном коде

Не поддерживается.

Поддерживается для локальных данных. См. «Многомерное размещение массива».

Параметры структуры

Поддерживаются настраиваемые и нетронутые параметры.

Поддерживаются только настраиваемые параметры.

Использование глобальных fimath объект

Поддерживается.

Не поддерживается.

См. также

Похожие темы