Как в MATLAB®, вы индексируете подструктуры и структуры полей в MATLAB Function блоках с помощью записи через точку. Однако для генерации кода из MATLAB необходимо ссылаться на значения полей по отдельности (см. Определение структуры для генерации кода).
Например, в примере Structures in a Блок MATLAB Function, функция MATLAB использует запись через точку для индексации полей и подструктур:
function [outbus, outbus1] = fcn(inbus) %#codegen substruct.a1 = inbus.ele3.a1; substruct.a2 = int8([1 2;3 4]); mystruct = struct('ele1',20.5,'ele2',single(100), 'ele3',substruct); outbus = mystruct; outbus.ele3.a2 = 2*(substruct.a2); outbus1 = inbus.ele3;
Следующая таблица показывает, как программное обеспечение генерации кода разрешает символы в записи через точку для индексации элементов структур в этом примере:
Запись через точку | Разрешение символа |
---|---|
substruct.a1 | Полевые a1 локальной структуры substruct |
inbus.ele3.a1 | Значение полевого a1 полевых ele3 , подструктура входного сигнала структуры inbus |
inbus.ele3.a2(1,1) | Значение в строке 1, столбец 1 поля a2 полевых ele3 , подструктура входного сигнала структуры inbus |