coder.rowMajor

Задайте размещение главного массива строки для функции или класса

Синтаксис

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

Была ли эта тема полезной?