|
|
|||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||
| Вход | |||||||||||||||||||||||||||||||||
|
Раздел "MATLAB\MATLAB"
В.Г.Потемкин "Введение в Matlab" (v 5.3) В оглавление книги \ К следующему разделу \ К предыдущему разделу \ Предметный указатель 4.2. Режим командной строки Команды отладки системы MATLAB - это набор инструментальных средств, позволяющих выполнять отладку М-файлов из командной строки. Краткое описание и синтаксис команд представлены в следующей таблице:
Используя командную строку, можно выполнить все функции отладки. В качестве примера воспользуемся М-функциями variance и sqsum, описанными выше. Тексты этих функций представлены в следующей таблице:
Установка контрольных точек. Команда dbstop позволяет установить контрольную точку в определенной строке программы. Для того чтобы установить контрольные точки в модуле variance после вычисления среднего значения (строка 2) и квадрата суммы центрированных значений (строка 3) следует воспользоваться следующими командами dbstop variance 3 Отладка кода в режиме работы с клавиатурой. Возьмем в качестве входных данных вектор v = [1 2 3 4 5]. Ожидаемые величины для среднего значения и суммы квадратов центрированных значений соответственно 3 и 10. Эти значения и должны быть получены в контрольных точках. Обратимся к М-функции из командной строки: При останове в контрольной точке MATLAB автоматически переходит в режим работы с клавиатурой, который помечается приглашением K. В этом режиме можно исполнять любые команды системы MATLAB. Для продолжения выполнения программы следует использовать команду dbcont. При первой остановке в контрольной точке рекомендуется использовать команду whos, которая позволяет увидеть все переменные рабочей области модуля variance: K» whos
Grand total is 6 elements using 48 bytes Проверим значение mu: K» mu Воспользуемся командой dbstep, чтобы выполнить одну строку программы; произойдет останов в строке 4 и теперь можно проверить значение переменной tot, которое соответствует сумме квадрратов центрированных входных значений: K >> tot Это означает, что неправильные вычисления связаны с модулем sqsum. Перемещение по рабочим областям. Используя функции dbup и dbdown, можно перемещаться от рабочей области одной функции к другой, а также рабочей области системы MATLAB. Для того чтобы войти в рабочую область системы MATLAB из модуля variance, достаточно применить команду K» dbup
Grand total is 5 elements using 40 bytes Переменная v, а также, возможно, другие переменые, введенные пользователем, могут появиться в этом списке. Чтобы вернуться обратно в рабочую область модуля variance достаточно применить команду dbdown. Листинг М-файла. В режиме клавиатуры можно использовать команду dbtype sqsum, чтобы вывести на экран листинг М-файла sqsum с пронумерованными строками: K» dbtype sqsum Установим контрольные точки, чтобы проверить величины вычисляемых значений и переменной цикла: Просмотр стека вызванных функций и продолжение выполнения. Для выхода из режима клавиатуры предназначена команда dbquit. Для удаления контрольных точек в модуле variance следует использовать команду При этом контрольные точки в модуле sqsum сохраняются. Снова запустим на выполнение модуль variance, вновь используя в качестве входного вектор v: Применим команду dbstack, чтобы проверить стек вызванных функций и убедиться, что М-функция variance действительно вызвала М-функцию sqsum: K» dbstack Проверим значение переменной цикла i и значение tot. K» i Выполним строку 4 и в контрольной точке строки 5 снова проверим значения i и tot: K» dbstep Значение tot изменилось; выполним строку end и вернемся к заголовку цикла; сделав еще один шаг, применим команду dbstack K>> dbstep Таким образом модуль sqsum выполнил цикл только один раз и возвратился в модуль variance. Внимательно присмотревшись к заголовку цикла for i = 1:length(mu) можно придти к выводу, что в нем есть ошибка. Окончание цикла задано длиной переменной mu, a не длиной входного вектора x. Убедимся, что правильное значение tot, равное 10, приводит к верному результату; присвоим переменной tot значение 10; тогда продолжив выполнение, получим верный результат: K» tot=10 Таким образом, в заголовке цикла надо заменить переменную mu на переменную x. Завершение сеанса отладки. Чтобы завершить сеанс отладки, следует применить команду dbquit и таким образом возвратиться в рабочую область системы MATLAB. После этого следует внести исправления в М-функцию sqsum.m, так чтобы переменная цикла изменялась от 1 до length(x), а не от 1 до length(mu), то есть заголовок цикла должен иметь вид: for i = 1:length(x) Повторим запуск модуля variance.m и получим требуемый результат: variance(v) В оглавление книги \ К следующему разделу \ К предыдущему разделу \ Предметный указатель
|
|
Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2002 г.)
|
||
| На первую страницу \ Сотрудничество \ MathWorks \ SoftLine \ Exponenta.ru \ Exponenta Pro | ||
| E-mail: | ||
| Информация на сайте была обновлена 11.05.2004 |
Copyright 2001-2004 SoftLine Co Наши баннеры |
|