Составители:
122
K>> dbstop sqsum 4
K>> dbstop sqsum 5
Просмотр стека вызванных функций и продолжение вы-
полнения. Для выхода из режима клавиатуры предназначена команда
dbquit. Для удаления контрольных точек в модуле variance следует
использовать команду
dbclear variance
При этом контрольные точки в модуле sqsum сохраняются.
Снова запустим на выполнение модуль variance, вновь ис-
пользуя в качестве входного вектор v
:
variance(v)
4 tot = tot + ((x(i)-mu).^2);
Применим команду dbstack, чтобы проверить стек вызванных функ-
ций и убедиться, что М-функция variance действительно вызвала М-
функцию sqsum:
K» dbstack
> In d:\matlab5\sqsum.m at line 4
In d:\matlab5\variance.m at line 3
Проверим значение переменной цикла i и значение tot.
K» i
i = 1
K» tot
tot = 0
Выполним строку 4 и в контрольной точке строки 5 снова проверим
значения i и tot:
K» dbstep
5 end
K» i
i = 1
K» tot
tot = 4
Значение tot изменилось; выполним строку end и вернемся к заголов-
ку цикла; сделав еще один шаг, применим команду dbstack
K>> dbstep
K» dbstack
>In d:\matlab5\variance.m at line 4
Таким образом модуль sqsum выполнил цикл только один раз и воз-
вратился в модуль variance.
Внимательно присмотревшись к заголовку цикла
for i = 1:length(mu)
можно придти к
выводу, что в нем есть ошибка. Окончание цикла за-
дано длиной переменной mu, a не длиной входного вектора x. Убе-
димся, что правильное значение tot, равное 10, приводит к верному
K>> dbstop sqsum 4
K>> dbstop sqsum 5
Просмотр стека вызванных функций и продолжение вы-
полнения. Для выхода из режима клавиатуры предназначена команда
dbquit. Для удаления контрольных точек в модуле variance следует
использовать команду
dbclear variance
При этом контрольные точки в модуле sqsum сохраняются.
Снова запустим на выполнение модуль variance, вновь ис-
пользуя в качестве входного вектор v:
variance(v)
4 tot = tot + ((x(i)-mu).^2);
Применим команду dbstack, чтобы проверить стек вызванных функ-
ций и убедиться, что М-функция variance действительно вызвала М-
функцию sqsum:
K» dbstack
> In d:\matlab5\sqsum.m at line 4
In d:\matlab5\variance.m at line 3
Проверим значение переменной цикла i и значение tot.
K» i
i= 1
K» tot
tot = 0
Выполним строку 4 и в контрольной точке строки 5 снова проверим
значения i и tot:
K» dbstep
5 end
K» i
i= 1
K» tot
tot = 4
Значение tot изменилось; выполним строку end и вернемся к заголов-
ку цикла; сделав еще один шаг, применим команду dbstack
K>> dbstep
K» dbstack
>In d:\matlab5\variance.m at line 4
Таким образом модуль sqsum выполнил цикл только один раз и воз-
вратился в модуль variance.
Внимательно присмотревшись к заголовку цикла
for i = 1:length(mu)
можно придти к выводу, что в нем есть ошибка. Окончание цикла за-
дано длиной переменной mu, a не длиной входного вектора x. Убе-
димся, что правильное значение tot, равное 10, приводит к верному
122
Страницы
- « первая
- ‹ предыдущая
- …
- 122
- 123
- 124
- 125
- 126
- …
- следующая ›
- последняя »
