exponenta event banner

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

При создании кода из кода MATLAB ®, содержащего массивы ячеек, генератор кода классифицирует массивы ячеек как однородные или гетерогенные. Эта классификация определяет способ представления массива ячеек в сгенерированном коде. Он также определяет способ использования массива ячеек в коде MATLAB, из которого создается код.

При использовании массивов ячеек в коде MATLAB, предназначенном для создания кода, необходимо соблюдать определенные ограничения. См. раздел Ограничения массива ячеек для создания кода.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

|

Связанные темы