Различия между 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 << bA, 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 функция с ключевым словом типа. Например, cast(x,'int8').

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

type оператор не поддерживается. Смотрите Операции Броска Типа.

Используйте одну из этих форм кастинга:

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

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

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

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

Не поддерживаемый.

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

Не поддерживаемый.

Поддерживаемый. Смотрите управляют текстовой информацией при помощи строк.

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

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

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

  • Модули

Не поддерживаемый.

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

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

Constant, Parameterвходной параметрвывод Local, Constant, Parameterвходной параметрвывод , Temporary

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

Поддерживаемый. Смотрите идентифицируют данные при помощи записи через точку.

Не поддерживаемый.

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

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

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

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

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

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

Упорядоченное по строкам размещение массивов в сгенерированном коде

Не поддерживаемый.

Поддерживаемый. Смотрите упорядоченное по строкам размещение массивов.

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

Не поддерживаемый.

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

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

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

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

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

Поддерживаемый.

Не поддерживаемый.

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

Похожие темы