Моделирование в системе MATLAB. Часть 1. Основы работы в MATLAB. Терёхин В.В. - 124 стр.

UptoLike

Составители: 

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
tot
tot = 0
Выполним строку 4 и в контрольной точке строки 5 снова проверим
значения i и tot:
K» dbstep
5 end
K» i
i = 1
K» tot
tot = 4
Значение tot изменилось; выполним строку end и вернемся к заголов-
ку цикла; сделав еще один шаг, применим команду dbstack
K>> dbstep
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