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