Чтобы задать входные данные глобального массива ячеек, используйте -globals вариант codegen с таким синтаксисом:
codegen myfunction -globals {global_var, {type_object, initial_value}}
Например:
Указание глобальной переменной g - массив ячеек 1x3, элементы которого имеют класс double и начальное значение {1 2 3}, использовать:
codegen myfunction -globals {'g', {coder.typeof({1 1 1}), {1 2 3}}}
В качестве альтернативы используйте:
t = coder.typeof({1 1 1});
codegen myfunction -globals {'g', {t, {1 2 3}}}Глобальная переменная g представляет собой однородный массив ячеек 1x3, элементы которого являются двойными 1x1.
Сделать g гетерогенные, использование:
t = makeHeterogeneous(coder.typeof({1 1 1}));
codegen myfunction -globals {'g', {t, {1 2 3}}}Чтобы указать, что g - массив ячеек, первый элемент которого имеет символ типа, второй элемент которого имеет двойной тип и начальное значение которого {'a', 1}, использовать:
codegen myfunction -globals {'g', {coder.typeof({'a', 1}), {'a', 1}}}
Глобальная переменная g - гетерогенный массив ячеек 1x2, первый элемент которого равен 1x1 char, а второй - 1x1 double.
Чтобы указать, что g - массив ячеек, первый элемент которого имеет тип double, второй элемент которого является двойным массивом 1x2 и начальное значение которого {1 [2 3]}, использовать:
codegen myfunction -globals {'g', {coder.typeof({1 [2 3]}), {1 [2 3]}}}
В качестве альтернативы используйте:
t = coder.typeof({1 [2 3]});
codegen myfunction -globals {'g', {t, {1 [2 3]}}}
Глобальная переменная g - гетерогенный массив ячеек 1x2, первый элемент которого является двойным 1x1, а второй элемент - двойным 1x2.
Глобальные переменные, являющиеся массивами ячеек, не могут иметь переменный размер.