Когда вы составляете таблицы в коде MATLAB®, который вы предназначаете для генерации кода, необходимо создать их при помощи array2table, cell2table, struct2table, или table функции. Для получения дополнительной информации см. Таблицы.
Для таблиц у генерации кода есть эти ограничения:
Необходимо задать имена переменных с помощью 'VariableNames' аргумент пары "имя-значение" при составлении таблиц от входных массивов при помощи table, array2table, или cell2table функции.
Вы не должны задавать 'VariableNames' аргумент, когда вы предварительно выделяете таблицу при помощи table функционируйте и 'Size' аргумент пары "имя-значение".
Имена табличной переменной не должны быть допустимыми идентификаторами MATLAB. Имена должны состоять из символов ASCII, но могут включать любые символы ASCII (такие как запятые, тире и пробелы).
Вы не можете изменить VariableNames'RowNames' DimensionNames , или UserData свойства таблицы после того, как вы создаете его.
Можно задать 'VariableNames' и 'RowNames' входные параметры, когда вы составляете таблицу. Эти входные параметры задают свойства.
Чтобы передать табличные индексы в сгенерированный код как входные параметры, сначала сделайте индексы постоянными при помощи coder.Constant функция. Если табличные индексы не являются постоянными, то индексация в переменные производит ошибку.
Вы не можете добавить пользовательские метаданные в таблицу. addprop и rmprop функции не поддерживаются.
Вы не можете изменить размер таблицы присвоениями. Например, добавление новой строки производит ошибку.
function T = foo() %#codegen T = table((1:3)',(1:3)','VariableNames',{'Var1','Var2'}); T(4,2) = 5; end
Удаление строки или переменной также производит ошибку.
Когда вы предварительно выделяете таблицу, можно задать только следующие типы данных при помощи 'VariableTypes' аргумент пары "имя-значение".
Имя типа данных | Начальное значение в каждом элементе |
|---|---|
| Дважды - или |
| Дважды - или |
| Подписанный 8-, 16-, 32-, или 64-битный целочисленный |
| 8-без знака, 16-, 32-, или 64-битный целочисленный |
| 0 |
| 0 |
|
|
Если вы задаете 'char' как тип данных, затем table предварительно выделяет соответствующую переменную как массив ячеек из символьных векторов, не как символьный массив. Лучшая практика состоит в том, чтобы не создавать табличные переменные, которые являются символьными массивами.
Когда вы вертикально конкатенируете таблицы, у них должны быть те же имена переменных в том же порядке. В MATLAB имена переменных должны быть тем же самым, но могут быть в различных порядках.
Когда вы горизонтально конкатенируете таблицы, и таблицы имеют имена строки, у них должны быть те же имена строки в том же порядке. В MATLAB имена строки должны быть тем же самым, но могут быть в различных порядках.
Если две таблицы имеют переменные, которые являются массивами ячеек N-D, то таблицы не могут быть вертикально конкатенированы.
Вы не можете использовать фигурные скобки, чтобы извлечь данные из нескольких табличных переменных, которые являются массивами ячеек N-D, поскольку эта операция является горизонтальной конкатенацией.
Функции принадлежности набора intersect, setdiff, setxor, и union поддержите неотсортированные таблицы во всех случаях. Вы не должны задавать 'stable' опция.
При использовании movevars функция, входной параметр vars не может содержать дублирующиеся имена переменных.
При использовании convertvars функция:
Указатели на функцию не поддерживаются.
Вторые и третьи входные параметры (vars и dataType) должно быть постоянным.
Вы не можете задать dataType как 'char'.
Ограничения, которые применяются к классам также, применяются к таблицам. Для получения дополнительной информации см. Определение Классов MATLAB для Генерации кода (MATLAB Coder).
array2table | cell2table | struct2table | table