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 функция не сообщает о функциях, которые генератор кода обрабатывает как значение внешних параметров. Примерами таких функций является plotdisp, и figure. Смотрите внешние функции.

пример

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

Примеры

свернуть все

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

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

function out = foo2(in)
out = eval(in);
end

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

function out = foo1(in)
out = foo2(in);
disp(out);
end

Анализируйте foo1.

coder.screener('foo1')

Отчет Готовности Генерации кода отображает сводные данные неподдерживаемых вызовов функции MATLAB. Отчет вкладка Summary указывает на тот foo2.m содержит один вызов eval функция, которая не поддерживается для генерации кода.

В отчете кликните по вкладке Code Structure и установите флажок Show MATLAB functions.

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

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

  • Желтый: функция (foo2.m) требует существенных изменений.

Отчет также отображает Call Tree с Code Generation Readiness Score. Счет основан на шкале 1–5. 1 указывает, что существенные изменения требуются. 5 указывает, что инструмент готовности генерации кода не обнаруживает проблемы. В этом примере отчет присваивает foo1.m счет готовности генерации кода 4 и foo2.m счет 3.

Функциональный foo2 вызовы одна неподдерживаемая функция MATLAB. Сгенерировать MEX-функцию для foo2.m, измените код, чтобы выполнить вызов к eval значение внешних параметров, и затем повторно выполненный инструмент готовности генерации кода.

Функция обновления eval к значению внешних параметров при помощи coder.extrinsic функция.

function out = foo2(in)
coder.extrinsic('eval');
out = eval(in);
end

Повторно выполните coder.screener.

coder.screener('foo1')

Отчет больше не отмечает ту генерацию кода, не поддерживает eval функция. Когда вы генерируете MEX-функцию для foo1, генератор кода диспетчеризирует eval к MATLAB для выполнения. Для автономной генерации кода генератор кода не генерирует код для eval.

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

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