Кодовое замещение формы-агностическое соответствие позволяет согласовывать входы матрицы для определенных операций на основе количества элементов в отличие от формы матрицы. Например, 6x1 матрица соответствует 2x3 матрица в форме-агностическом совпадении, потому что оба имеют в общей сложности 6 элементов. Такие совпадения могут быть выполнены только в том случае, если выходные данные и входные данные постоянно распределяются в памяти и если функция замены может выполняться по элементам. Соответствие формы агностической матрице увеличивает скорость замещения, поэтому является выгодным замещение, которое не требует учета формы матрицы.
Записи замены кода формы-агностики могут быть созданы либо с помощью пользовательского интерфейса инструмента замены кода, либо программно.
В этом примере показано, как настроить замену агностической матрицы формы для записи таблицы замены кода сложения.
Откройте инструмент замены кода. В командной строке MATLAB ® введитеcrtool.
Создайте таблицу замены кода. Перейти к разделу File > New Table.
Создайте запись таблицы. Замена формы-агностической матрицы поддерживает только записи таблицы математических операций. Также right-click на вашем столе или перейдите к File > New Entry и выберите Математическая операция (Math Operation). Появится информация о сопоставлении. От Operation раскрывающееся меню, выберите addition.
Создайте концептуальные аргументы. Conceptual operation раздел определяет каждый из концептуальных аргументов. Чтобы включить агностическую замену формы, установите Argument type: кому matrix , чтобы открыть Matrix entry properties меню.
Задайте параметры записи. В Matrix entry properties выберите Allow shape-agnostic match для включения замены агностики формы.
Проверьте запись таблицы. Либо нажмите кнопку validate entry или щелкните правой кнопкой мыши запись и выберите Validate entries.
Щелкнуть save.
На этом экране показаны настройки инструмента замены кода для этого примера.

В этом примере показано, как настроить замену агностической матрицы формы для записи таблицы замены кода сложения.
Создайте таблицу замены кода. Создание определения функции с именем таблицы 'ShapeAgnosticTable'. Звонить RTW.TflTable для создания таблицы.
function hLib = ShapeAgnosticTable hLib = RTW.TflTable;
Создайте запись таблицы для замены кода. Замена формы-агностика поддерживает только записи операций, как указано при вызове RTW.TflCOperationEntry.
hEnt = RTW.TflCOperationEntry;
Задайте параметры ввода для настройки обработки ввода. Можно включить замену формы-агостической матрицы, задав параметр ввода 'AllowShapeAgnosticMatch' кому true.
hEnt.setTflCOperationEntryParameters( ...
'Key', 'RTW_OP_ADD', ...
'Priority', 100, ...
'AllowShapeAgnosticMatch', true, ...
'ImplementationName', 'MyAdd_Matrix', ...
'SideEffects', true);Создайте концептуальные аргументы. Для этого примера создайте концептуальные аргументы y1, u1 и u2 с вызовами функции create, RTW.TflArgMatrixи добавить функцию, addConceptualArg.
arg = RTW.TflArgMatrix('y1', 'RTW_IO_OUTPUT', 'double');
arg.DimRange = [2 2; 50 50];
hEnt.addConceptualArg(arg);
arg = RTW.TflArgMatrix('u1', 'RTW_IO_INPUT', 'double');
arg.DimRange = [2 3; 2 3];
hEnt.addConceptualArg(arg);
arg = RTW.TflArgMatrix('u2', 'RTW_IO_INPUT', 'double');
arg.DimRange = [2 3; 2 3];
hEnt.addConceptualArg(arg);Создайте аргументы реализации. В этом примере вызовите функцию getTflArgFromString для создания аргументов. Определите аргумент возврата реализации как void выходной аргумент. Определите концептуальный выходной аргумент y1 как указатель с IOType как output.
arg = hEnt.getTflArgFromString('unused','void');
arg.IOType = 'RTW_IO_OUTPUT';
hEnt.Implementation.setReturn(arg);
arg = hEnt.getTflArgFromString('u1','double*');
hEnt.Implementation.addArgument(arg);
arg = hEnt.getTflArgFromString('u2','double*');
hEnt.Implementation.addArgument(arg);
arg = hEnt.getTflArgFromString('y1','double*');
arg.IOType = 'RTW_IO_OUTPUT';
hEnt.Implementation.addArgument(arg);
arg = hEnt.getTflArgFromString('numElements','uint32',6);
hEnt.Implementation.addArgument(arg);
Добавление этой записи в таблицу замены кода с функцией addEntry.
hLib.addEntry( hEnt );
Сохраните таблицу в качестве имени функции. Для этого примера: ShapeAgnosticTable.
Проверьте правильность ввода в командной строке MATLAB. Вызовите файл определения таблицы с помощью следующей команды.
hTbl = ShapeAgnosticTable
Пример модели
Пример этой записи таблицы замены кода показан в следующей модели. Даже несмотря на то, что форма матрицы в этой модели не соответствует записи, операция может быть выполнена по элементам, и запись обеспечивает агностическое соответствие формы, поэтому замена кода наблюдается в сгенерированном коде.

/* Outport: '<Root>/Out1' incorporates: * Inport: '<Root>/In1' * Inport: '<Root>/In2' * Sum: '<Root>/Add' */ MyAdd_Matrix(Demo_U.In1, Demo_U.In2, Demo_Y.Out1, 6U);
Если включить агностическое сопоставление формы для операции, которая по своей природе не вычисляется по элементам, выполняется регулярное сопоставление.
При включенном агностическом совпадении формы замена кода не соответствует настройкам для 'DimRange'. Вместо этого он вычисляет количество элементов и использует это значение для сопоставления.
Если вы работаете с настраиваемыми записями замены кода, настройте 'do_match' для принятия общего количества элементов в отличие от размеров матрицы. Дополнительные сведения см. в разделе Настройка процесса сопоставления и замены.
setTflCOperationEntryParameters