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

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

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

Гомогенный по сравнению с неоднородными Массивами ячеек

Гомогенный массив ячеек имеет эти характеристики:

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

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

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

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

Неоднородный массив ячеек имеет эти характеристики:

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

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

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

  • Необходимо индексировать в массив ячеек с постоянным индексом или с for- циклы, которые имеют постоянные границы.

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

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

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

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

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

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

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

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

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

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

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

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

|

Похожие темы