Генерация кода для массивов ячеек

Когда вы генерируете код из MATLAB® код, который содержит массивы ячеек, генератор кода классифицирует массивы ячеек как homogeneous или heterogeneous. Эта классификация определяет, как массив ячеек представлен в сгенерированном коде. Это также определяет, как можно использовать массив ячеек в коде MATLAB, из которого вы генерируете код.

Когда вы используете массивы ячеек в коде MATLAB, который предназначен для генерации кода, вы должны придерживаться определенных ограничений. Смотрите Ограничения массива ячеек для Генерации кода.

Однородные и гетерогенные массивы ячеек

Однородный массив ячеек имеет следующие характеристики:

  • Массив ячеек представлен как массив в сгенерированном коде.

  • Все элементы имеют одинаковые свойства. Тип, сопоставленный с массивом ячеек, задает свойства всех элементов, а не свойства отдельных элементов.

  • Массив ячеек может быть переменного размера.

  • Можно индексировать в массив ячеек индекс, значение которого определяется во время выполнения.

Гетерогенный массив ячеек имеет следующие характеристики:

  • Массив ячеек представлен как структура в сгенерированном коде. Каждый элемент представлен как поле структуры.

  • Элементы могут иметь различные свойства. Тип, сопоставленный с массивом ячеек, задает свойства каждого элемента по отдельности.

  • Массив ячеек не может быть переменным размером.

  • Вы должны индексировать в массив ячеек с постоянным индексом или с for- циклы с постоянными границами.

Генератор кода использует эвристику, чтобы определить классификацию массива ячеек как однородную или неоднородную. Он рассматривает свойства (класс, размер, сложность) элементов и других факторов, таких как то, как использование массива ячеек в вашей программе. В зависимости от того, как вы используете массив ячеек, генератор кода может классифицировать массив ячеек как однородный в одном случае и неоднородный в другом случае. Например, рассмотрим массив ячеек {1 [2 3]}. Генератор кода может классифицировать этот массив ячеек как гетерогенный массив ячеек 1 на 2. Первый элемент является двойным скаляром. Второй элемент является массивом типа double 1 на 2. Однако, если вы индексируете в этот массив ячеек индекс, значение которого определяется во время исполнения, генератор кода классифицирует его как однородный массив ячеек. Элементы являются массивами типа double переменного размера с верхней границей 2.

Управление тем, является ли массив ячеек однородным или неоднородным

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

  • Если элементы имеют различные классы, массив ячеек должен быть неоднородным.

  • Если массив ячеек имеет переменный размер, он должен быть однородным.

  • Если вы индексируете в массив ячеек индекс, значение которого определяется во время выполнения, массив ячеек должен быть однородным.

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

Массивы ячеек в отчетах

Чтобы увидеть, является ли массив ячеек однородным или неоднородным, смотрите переменную в отчете Функция MATLAB.

Для однородного массива ячеек в отчете есть одна запись, которая задает свойства всех элементов. Обозначение {:} указывает, что все элементы массива ячеек имеют одинаковые свойства.

Для гетерогенного массива ячеек в отчете есть запись для каждого элемента. Для примера - для гетерогенного массива ячеек c с двумя элементами, запись для c{1} показывает свойства для первого элемента. Запись для c{2} показывает свойства второго элемента.

См. также

|

Похожие темы