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