exponenta event banner

coder.screener

Определение пригодности функции для генерации кода

Описание

пример

coder.screener(fcn) анализирует входную функцию MATLAB ®fcn для определения неподдерживаемых функций и языковых функций как проблем с соответствием требованиям при создании кода. В отчете о готовности отображаются проблемы с соответствием генерации кода.

Если fcn вызывает другие функции, прямо или косвенно не являющиеся функциями MathWorks ® (встроенные функции MATLAB и функции панели инструментов ),coder.screener анализирует эти функции. Он не анализирует функции MathWorks.

Возможно, что coder.screener не обнаруживает всех проблем с генерацией кода. При определенных обстоятельствах возможно, что coder.screener сообщает о ложных ошибках.

Во избежание необнаруженных проблем создания кода и ложных ошибок перед созданием кода убедитесь, что код MATLAB подходит для создания кода, выполнив следующие дополнительные проверки:

  • Перед использованием coder.screenerустраните проблемы, выявленные анализатором кода.

  • После использования coder.screenerи прежде чем генерировать код C/C + +, убедитесь, что ваш код MATLAB подходит для генерации кода путем генерации и проверки функции MEX.

coder.screener функция не сообщает о функциях, которые генератор кода рассматривает как внешние. Примерами таких функций являются: plot, disp, и figure. См. раздел Использование механизма MATLAB для выполнения вызова функции в сгенерированном коде.

coder.screener(fcn,'-gpu') анализирует функцию MATLAB точки входа fcn для определения неподдерживаемых функций и языковых функций для создания кода графического процессора. Для этого параметра требуется лицензия GPU Coder™.

пример

coder.screener(fcn_1,...,fcn_n) анализирует несколько функций MATLAB точки входа.

Примеры

свернуть все

coder.screener функция определяет вызовы функций, которые не поддерживаются для генерации кода. Он проверяет функцию точки входа, foo1и функцию, foo2, что foo1 вызовы.

Запишите функцию foo2 и сохраните его в файле foo2.m.

function tf = foo2(source,target)
G = digraph(source,target);
tf = isdag(G);
end

Запишите функцию foo1 который вызывает foo2. Сохранить foo1 в файле foo1.m.

function tf = foo1(source,target)
assert(numel(source)==numel(target))
tf = foo2(source,target);
end

Проанализировать foo1.

coder.screener('foo1')

В отчете Готовность к созданию кода отображается сводка неподдерживаемых вызовов функции MATLAB. Вкладка Сводка отчета показывает, что foo2.m содержит один вызов digraph функция и один вызов isdag , которые не поддерживаются для генерации кода.

В отчете перейдите на закладку Структура кода и установите флажок Показать функции MATLAB.

На этой вкладке отображается круговая диаграмма, показывающая относительный размер каждого файла и его пригодность для создания кода. В отчете отображаются:

  • Зеленый: Функция (foo1.m) подходит для генерации кода.

  • Желтый: Функция (foo2.m) требует значительных изменений.

В отчете также отображается дерево вызовов с оценкой готовности к генерации кода. Оценка основана на шкале 1-5. 1 указывает на необходимость внесения существенных изменений. 5 показывает, что средство готовности к генерации кода не обнаруживает проблем. В этом примере отчет присваивает foo1.m показатель готовности к генерации кода 4 и foo2.m при счете 3.

Функция foo2 вызывает две неподдерживаемые функции MATLAB. Чтобы создать функцию MEX, измените код для выполнения вызовов digraph и isdag внешний с помощью coder.extrinsic директива, а затем повторно запустите инструмент готовности к созданию кода.

function tf = foo2(source,target)
coder.extrinsic('digraph','isdag');
G = digraph(source,target);
tf = isdag(G);
end

Запущенный повторно coder.screener в функции точки входа foo1.

coder.screener('foo1')

Отчет больше не помечает, что создание кода не поддерживает digraph и dag функции. При создании функции MEX для foo1генератор кода отправляет эти две функции в MATLAB для выполнения.

coder.screener определяет типы данных MATLAB, которые не поддерживаются генерацией кода.

Запишите функцию myfun1 содержит тип данных массива длительности календаря MATLAB.

function out = myfun1(A)
out = calyears(A);
end

Проанализировать myfun1.

coder.screener('myfun1');

Отчет о готовности к созданию кода указывает, что calyears тип данных не поддерживается для создания кода.

Отчет присваивает myfun1 показатель готовности к генерации кода 3. Прежде чем создавать код, устраните выявленные неполадки.

Входные аргументы

свернуть все

Имя исходной функции MATLAB для анализа. Укажите как вектор символа или скаляр строки.

Пример: coder.screener('myfun');

Типы данных: char | string

Список имен функций MATLAB для анализа, разделенных запятыми. Укажите как векторы символов или строковые скаляры.

Пример: coder.screener('myfun1','myfun2');

Типы данных: char | string

Ограничения

  • coder.screener не поддерживается в MATLAB Online™.

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