В Создают Пользовательскую Функциональность Используя блок MATLAB function, вы создали модель в качестве примера с блоком MATLAB Function, который вычисляет среднее и стандартное отклонение для набора входных значений. Программное обеспечение позволяет отладить для MATLAB Function, когда вы устанавливаете точку останова.
Отлаживать MATLAB Function в этой модели:
Откройте call_stats_block2
модель и дважды кликает блок MATLAB Function stats
открыть редактор.
В Редакторе блока MATLAB function кликните по тире (-
) в левом поле линии:
len = length(vals);
Красная точка появляется в поле линии, указывая на точку останова.
Симулируйте модель.
Симуляция делает паузу, когда выполнение достигает точки останова. Это обозначается зеленой стрелой в поле.
На панели инструментов нажмите Step, чтобы усовершенствовать выполнение.
Стрела выполнения переходит к следующей строке stats
, который вызывает локальную функцию avg
.
На панели инструментов нажмите Step In.
Выполнение совершенствуется, чтобы ввести локальную функцию avg
. Если вы находитесь в локальной функции, можно использовать Step или команды Step In, чтобы усовершенствовать выполнение. Если локальная функция вызывает другую локальную функцию, используйте Step In, чтобы ввести его. Если вы хотите выполнить остающиеся линии локальной функции, используйте Step Out.
Нажмите Step, чтобы выполнить единственную линию в локальной функции avg
. Когда локальная функция avg
выполнение концов, зеленая стрела, указывая вниз, появляется под последней линией функции.
Нажмите Step, чтобы возвратиться к функциональному stats
.
Выполнение переходит к линии после вызова локальной функции avg
.
Нажмите Step дважды, чтобы вычислить stdev
и выполнить plot
функция.
Функция построения графика выполняется в MATLAB®:
В Редакторе блока MATLAB function зеленая стрелка показывает вниз под последней строкой кода, указывая на завершение функционального stats
.
Нажмите Continue, чтобы продолжить выполнение модели.
Вычисленные значения mean
и stdev
появитесь в блоках Display.
В Редакторе блока MATLAB function нажмите Quit Debugging, чтобы остановить симуляцию.
Чтобы помочь вам отладить код, можно ввести выражение MATLAB как условие на точке останова в Функциональном блоке MATLAB. Симуляция затем делает паузу на той точке останова только, когда условие верно. Чтобы установить условную точку останова, в редакторе блока MATLAB Function, щелкают правой кнопкой около строки кода и выбирают Set Conditional Breakpoint. Введите условие во всплывающем окне. Можно использовать любое допустимое выражение MATLAB в качестве условия. Это выражение условия может включать численные значения и любые данные, которые находятся в осциллографе в точке останова.
Чтобы добавить или изменить условие на существующей точке останова, щелкните правой кнопкой по точке останова и выберите Set/Modify Condition. Можно также выполнить эти действия в меню Breakpoints.
В то время как вы симулируете блок MATLAB Function, можно использовать несколько инструментов, чтобы отслеживать значения переменных в функции.
Отобразить значение переменной в функции блока MATLAB Function в процессе моделирования:
В Редакторе блока MATLAB function установите курсор мыши на переменный текст и наблюдайте раскрывающееся отображение.
Например, чтобы смотреть переменную len
в процессе моделирования установите курсор мыши на текст len
в коде. Значение len
кажется смежным с курсором, как показано:
Можно сообщить о значениях для функциональной переменной с утилитой Отладчика Командной строки в окне MATLAB в процессе моделирования. Когда вы достигаете точки останова, подсказки Отладчика Командной строки, debug>>
, появляется. В этой подсказке вы видите значение переменной, заданной для блока MATLAB Function путем ввода его имени:
debug>> stdev 1.1180 debug>>
Отладчик Командной строки также обеспечивает следующие команды в процессе моделирования:
Команда | Описание |
---|---|
| Выйдите из отладки и оконечной симуляции. |
| Продолжите выполнение, чтобы затем установить точки останова. |
| Выйдите из отладки и оконечной симуляции. |
| Перейдите к следующему шагу программы после того, как с точкой останова столкнутся. Переступите или продвиньтесь в/из локальную функцию MATLAB. |
| Отобразите справку для отладки командной строки. |
| Отобразите значение переменной |
| Сохраняет все переменные в текущем осциллографе к заданному файлу. Следует за синтаксисом MATLAB |
| Эквивалентный, чтобы "распечатать <var>", если переменная находится в текущем осциллографе. |
| Отобразите переменные в текущем осциллографе. |
| Отобразите размер и класс (тип) всех переменных в текущем осциллографе. |
Можно выпустить любую другую команду MATLAB в debug>>
подсказка, но результаты выполняется в рабочей области блока MATLAB Function. Давать команду в базовом рабочем пространстве MATLAB в debug>>
подсказка, используйте evalin
команда с первым аргументом 'base'
сопровождаемый второй командой аргумента, например, evalin('base','whos')
. Чтобы возвратиться к базовому рабочему пространству MATLAB, используйте dbquit
команда.
Редактор блока MATLAB function не отображает содержимое матриц, которые имеют больше чем две размерности или больше, чем 200
элементы. Для матриц, которые превышают эти пределы, Редактор блока MATLAB function отображает форму и базовый тип только.
Блоки MATLAB Function проверяют вводы и выводы на нарушения области значений данных, когда значения ввода или вывода вводят или оставляют блоки. Чтобы включить проверку нарушения области значений данных, установите Simulation range checking в панели Diagnostics: Data Validity диалогового окна Configuration Parameters к error
.
Чтобы указать диапазон для входных и выходных данных, выполните эти шаги:
В Портах и Менеджере данных, выберите ввод или вывод интереса.
Диалоговое окно свойств данных открывается.
В диалоговом окне свойств данных выберите вкладку "Общие" и введите предельную область значений, как описано в Setting General Properties.
Используйте следующие инструменты во время сеанса отладки блока MATLAB Function:
Кнопка инструментов | Описание | Сочетание клавиш |
---|---|---|
Сборка | Доступ к этому инструменту от вкладки Editor путем выбора Build Model> Build. Проверьте ошибки и создайте приложение симуляции (если никакие ошибки не найдены) для модели, содержащей этот блок MATLAB Function. | Ctrl+B |
Обновите схему | Доступ к этому инструменту от вкладки Editor путем выбора Build Model> Update Diagram. Проверьте ошибки на основе последних изменений, которые вы вносите в блок MATLAB Function. | Ctrl+D |
Обновите порты | Доступ к этому инструменту от вкладки Editor путем выбора Build Model> Update Ports. Обновляет порты блока MATLAB Function с последними изменениями, внесенными в аргумент функции и возвращаемые значения, не закрывая Редактор блока MATLAB function. | Ctrl+Shift+A |
Запустите модель | Запустите симуляцию модели, содержащей блок MATLAB Function. Если выполнение приостановлено в точке останова, продолжает отлаживать. | F5 |
Остановите модель | Остановите симуляцию модели, содержащей блок MATLAB Function. В качестве альтернативы от вкладки Editor, выберите Quit Debugging, если выполнение приостановлено в точке останова. | Shift+F5 |
Установить/Очистить | Доступ к этому инструменту путем выбора Breakpoints> Set/Clear. Установите новую точку останова или очистите существующую точку останова для выбранной строки кода в блоке MATLAB Function. Присутствие текстового курсора или выделенного текста выбирает линию. Индикатор точки останова появляется на выбранной линии. В качестве альтернативы кликните по символу дефиса ( | F12 |
Позволить/Запретить | Доступ к этому инструменту путем выбора Breakpoints> Enable/Disable. Включите или отключите существующую точку останова для выбранной строки кода в блоке MATLAB Function. Если точка останова отключена, индикатор появляется на выбранной линии. | 'none' |
Установите условие | Доступ к этому инструменту путем выбора Breakpoints> Set Condition. Установите условие на точке останова для выбранной строки кода в блоке MATLAB Function. Если точке останова сопоставили условие с ним, индикатор появляется на выбранной линии. | |
Очистите все | Доступ к этому инструменту путем выбора Breakpoints> Clear All. Очистите все существующие точки останова в блочном коде MATLAB Function. | 'none' |
Шаг | Продвиньтесь посредством выполнения следующей строки кода в блоке MATLAB Function. Этот инструмент продвигается прошлые вызовы функции и не вводит вызванные функции для линию за линией выполнения. Можно использовать этот инструмент только после того, как выполнение остановилось в точке останова. | F10 |
Вступить | Продвиньтесь посредством выполнения следующей строки кода в блоке MATLAB Function. Если линия вызывает локальную функцию, шаг в первую линию локальной функции. Можно использовать этот инструмент только после того, как выполнение остановилось в точке останова. | F11 |
Выйти | Продвиньтесь из линию за линией выполнения текущей функциональной или локальной функции. Если в локальной функции, отладчик продолжается к линии после вызова этой локальной функции. Можно использовать этот инструмент только после того, как выполнение остановилось в точке останова. | Shift+F11 |
Продолжение | Продолжите отлаживать после паузы, такой как остановка в точке останова. Можно использовать этот инструмент только после того, как выполнение остановилось в точке останова. | F5 |
Выйдите из отладки | Выйдите из режима отладки. Можно использовать этот инструмент только после того, как выполнение остановилось в точке останова. | Shift+F5 |