exponenta event banner

coder.rowMajor

Укажите макет главного массива строк для функции или класса

Синтаксис

Описание

пример

coder.rowMajor задает макет основного массива строк для данных, используемых текущей функцией в сгенерированном коде. При размещении в конструкторе класса coder.rowMajor указывает макет основной строки для данных, используемых классом.

Примечание

По умолчанию при создании кода используется макет основного массива столбца.

Примеры

свернуть все

Укажите макет главного массива строк для функции путем вставки coder.rowMajor в тело функции.

Предположим, что myFunction - функция верхнего уровня кода. Приложение требует добавления матрицы с макетом основной строки и умножения матрицы с макетом основной строки.

function S = myFunction(A,B)
%#codegen
% check to make sure inputs are valid
if size(A,1) ~= size(B,1) || size(A,2) ~= size(B,2)
    disp('Matrices must be same size.');
    return;
end
% make both matrices symmetric
B = B*B';
A = A*A';
% add matrices
S = addMatrix(A,B);
end

Запись функции для добавления матрицы с именем addMatrix. Укажите макет основной строки для addMatrix с помощью coder.rowMajor.

function S = addMatrix(A,B) 
%#codegen
S = zeros(size(A));
coder.rowMajor; % specify row-major array layout
S = A + B;
end

Создать код для myFunction. Используйте codegen команда.

codegen myFunction -args {ones(10,20),ones(10,20)} -config:lib -launchreport

Генератор кода создает код для addMatrix используется компоновка «строка-основной массив». Однако умножение матрицы из функции верхнего уровня использует формат по умолчанию «столбец-мажор».

Совет

  • Чтобы задать макет основного массива строк для всех функций в созданном коде, используйте codegen -rowmajor вариант.

  • Другие функции, вызываемые из основной функции строки, наследуют основную спецификацию строки. Однако, если одна из вызываемых функций имеет свои собственные отличия coder.columnMajor вызов, генератор кода соответственно изменяет макет массива. Если основная функция строки и основная функция столбца вызывают одну и ту же функцию, которая не имеет собственной спецификации компоновки массива, генератор кода создает основную версию строки и основную версию столбца функции.

  • coder.rowMajor игнорируется вне процесса создания и моделирования кода.

Представлен в R2018a