- •Программирование в среде Matlab Работу подготовил студент группы мп-31 Самсоненко Егор Введение
- •1. Работа в среде matlab
- •1.1 Командное окно
- •1.2 Система меню
- •1.3 Интерфейс matlab
- •2. Программирование в среде matlab
- •2.1 Команды ввода – вывода
- •2.1.1 Команды load и save
- •2.1.2 Форматные операции ввода-вывода
- •2.1.3 Команды для работы со стандартными файлами
- •2.2 Объектно-ориентированное программирование
- •2.3 Отладка
- •2.3.1 Отладка в командном режиме
- •2.3.2 Редактор medit и отладка
- •2.4 Разработка mex-файлов
2.3 Отладка
Если в процессе выполнения программы возникает ошибка, то MATLAB выводит диагностическое сообщение и номер строки, в которой, по мнению пакета, произошла ошибка. Эта информация полезна, но может быть довольно приблизительной, поэтому желательно в процессе отладки программы иметь доступ к переменным для контроля вычислений и просмотра данных.
Для отладки программ и m-функций могут быть полезны следующие простые рекомендации:
Удалите подавляющие вывод данных на экран точки с запятой или замените их запятыми. Тогда анализ промежуточных результатов может указать причину неверной работы.
Расставьте по тестируемому тексту операторы keyboard. При выполнении этих операторов MATLAB приостановит работу, выведет приглашение, и в режиме интерпретатора можно будет анализировать промежуточные результаты (выводить содержимое интересующих переменных, переопределять величины).
Превратите m-функцию в файл script. Закомментируйте описания в начале файла и выполните полученный файл.
Кроме того, в MATLAB имеются специальные возможности для тестирования программ: набор команд отладки и средства редактора-отладчика medit. В этом случае отладка заключается в расстановке точек останова, прогоне программы от точки к точке и просмотре данных. Командный режим отладки является универсальным, поскольку одинаков для различных вычислительных систем, но для среды Windows режим отладки с использованием редактора medit выглядит нагляднее и проще.
2.3.1 Отладка в командном режиме
Если отладку проводить при помощи команд среды MATLAB, то для установки и снятия точек останова применяются команды dbstop и dbclear. Каждая из этих команд имеет несколько вариантов применения, в частности команда dbstop еще и задает режимы отладки, a dbclear отменяет назначения. Команды отладки приведены в таблице 2.4.
Таблица 2.4
Команда |
Описание |
Dbstop |
Определить точку останова |
Dbclear |
Удалить точку (точки) останова |
Dbcont |
Продолжить выполнение |
Dbstep |
Выполнить команду отладки |
Dbquit |
Завершить отладку |
dbstack |
Список точек останова |
Полный список команд отладки с перечислением вариантов обращения можно посмотреть в системе справки (help debug), документации MATLAB или книгах.
2.3.2 Редактор medit и отладка
Редактор-отладчик medit обеспечивает удобную среду для подготовки и отладки m – файлов в MATLAB. Файл редактора medit.exe находится в директории \bin и может быть вызван из командного окна MATLAB (пункты New и Open меню Filе, запуск команды edit) или запущен как обычная программа. Редактор-отладчик предоставляет доступ к текстам и данным, в нем можно редактировать m-файлы, вызывать для просмотра и изменения матричные переменные, организовывать отладку программ и функций.
Для просмотра данных из рабочей области следует вызвать Workspace Browser и выбрать (щелкнуть мышкой) нужную переменную. В редакторе откроется новый документ и появится таблица (матрица) с данными, которые можно просмотреть и переопределить. Эта возможность пока предоставляется для скалярных, векторных и матричных величин, так что многомерные массивы и структуры придется просматривать, запуская из командной строки вывод самой переменной или какой-то ее части.
Если редактор medit вызван из командного окна, то в процессе вычислений редактирование становится невозможным. Чтобы в среде Windows подготавливать код (файлы сценариев и функций) параллельно вычислениям, можно запустить редактор medit автономно от MATLAB, но в этом случае просмотр данных будет невозможен.
Рассмотрим отладку с использованием средств редактора-отладчика. Назначения пунктов меню Debug приведены в таблице 2.5.
Таблица 2.5
Пункт меню |
Описание |
Set/Clear Breakpoint F12 |
Расставить/убрать точку останова |
Clear All Breakpoints |
Убрать все точки останова |
Step In F11 |
Построчное исполнение с заходом в вызываемые функции |
Single Step F10 |
Построчное исполнение |
Continue |
Выполнение до следующей точки останова |
Quit Debugging |
Завершить отладку |
Для отладки m-функции вызовем из командного окна редактор medit и считаем нужный файл. Чтобы указать точку останова в тексте функции, установим курсор на нужной строке и выполним пункт Set/Clear Breakpoint или щелкнем по отвечающему этому пункту значку. После расстановки точек останова запустим отлаживаемый файл. Пакет MATLAB выполнит все команды до первой точки и сделает паузу. Ниже можно просмотреть значения переменных. Пунткты указатели из меню откладки Debug (Таблица 2.6).
Таблица 2.6
Stop If Error |
Остановка при ошибке |
Stop if Warning |
Остановка при предупреждающем сообщении |
Stop if NaN or Inf |
Остановка при появлении нечисловой или бесконечной переменной |
