coder.screener

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

Описание

пример

coder.screener(fcn) анализирует точку входа функция MATLAB®, fcn. Это идентифицирует неподдерживаемые функции и функции языка как проблемы соответствия генерации кода. Это отображает проблемы соответствия генерации кода в отчете. Если fcn вызывает другие функции прямо или косвенно, которые не являются функциями MathWorks®, coder.screener анализирует эти функции. Это не анализирует функции MathWorks. Это возможно тот coder.screener не обнаруживает все проблемы генерации кода. При определенных обстоятельствах это возможно тот coder.screener ложные ошибки отчетов.

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

пример

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

Примеры

свернуть все

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. Функциональный foo2 вызовы одна неподдерживаемая функция MATLAB.

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

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

  • Цвета foo1.m зеленый, чтобы указать, что это подходит для генерации кода.

  • Цвета foo2.m желтый, чтобы указать, что это требует существенных изменений.

  • Присвоения foo1.m счет готовности генерации кода 4 и foo2.m счет 3. Счет основан на шкале 1–5. 1 указывает, что существенные изменения требуются; 5 указывает, что инструмент готовности генерации кода не обнаруживает проблемы.

  • Отображает дерево вызова.

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

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

Повторно выполните инструмент готовности генерации кода.

coder.screener('foo1')

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

coder.screener функция идентифицирует типы данных MATLAB, которые не поддерживает генерация кода.

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

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

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

coder.screener('myfun1');

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

Отчет присваивает myfun1 счет готовности кода 3. Прежде, чем сгенерировать код, необходимо устранить проблемы, о которых сообщают.

Входные параметры

свернуть все

Имя функции MATLAB точки входа, которую вы хотите анализировать. Задайте как вектор символов или скаляр строки.

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

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

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

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

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

Ограничения

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

Советы

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

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

  • Это возможно тот coder.screener не обнаруживает все проблемы и может сообщить о ложных ошибках. Поэтому прежде, чем сгенерировать код С, проверьте, что ваш код подходит для генерации кода путем генерации MEX-функции.

  • coder.screener не сообщают функции, которые генератор кода автоматически обрабатывает как значение внешних параметров. Примерами таких функций является plotdisp, и figure. Смотрите внешние функции.

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