Matlab Editor / Debugger
так как debugger в переводе с английского означает " отладчик ".
Чтобы поставить "точку останова" на какой-либо строке кода функции, туда нужно поместить курсор и нажать клавишу F12 (повторное нажатие этой клавиши убирает точку останова). Вместо нажатия этой клавиши можно выполнить команду меню
Debug | Set/Clear Breakpoint
но всё же быстрее это можно выполнить нажатием клавиши. После этого в строке слева появляется красный кружок, указывающий на то, что в данной строке проставлена точка останова. После этого, не закрывая окна Редактора/Отладчика (Editor/Debugger), переключаем фокус ввода с клавиатуры в командное окно MATLABа и запускаем обычным образом функцию на выполнение. После этого и произойдёт останов выполнения функции прямо на строке, в которой поставлена точка останова (Breakpoint).
Теперь мы можем просматривать фактические значения входных параметров функции, текущие значения глобальных и локальных переменных, а также значения выражений. Чтобы просмотреть значение переменной, достаточно подвести курсор к её имени в тексте функции, после чего на экране появится всплывающий жёлтый прямоугольник со значением переменной внутри него:
Далее, нажимая клавишу F10 мы можем выполнять функцию построчно, каждый раз проверяя результаты такой пошаговой работы функции. В результате всегда можно "окружить ошибку" и выявить её причину.
Изменив текст функции и устранив выявленную ошибку,запускаем функцию на выполнение, в результате чего либо удостовериваемся в её правильной работе, либо находим новую ошибку. Желательно продумать методику отладки, запуская функцию на выполнение с разными значениями аргументов и разными значениями глобальных функций. В результате такого итерационнного отладочного процесса приходят к правильно работающим функциям.
#$+Массивы символов.
До сих пор мы мели дело с единственным типом данных - массивами вещественных чисел. Это действительно основной тип данных системы MATLAB, предназначенный для вычислений. В то же время, при рассмотрении графики MATLABа мы столкнулись с типом данных " короткое целое ", обозначаемое с помощью ключевого слова uint8. Этот тип данных специально предназначен для компактного хранения больших массивов целых чисел, что очень характерно для графических задач. Однако производить вычисления с типом данных uint8 нельзя (по крайней мере в версии системы MATLAB 5.2). Если всё же нужно произвести вычисления, то сначала тип данных uint8 приводят явно к типу double, производят вычисления и возвращаются к типу uint8 для дальнейшего хранения.
Во всех языках программирования, и MATLAB здесь не исключение, большую роль играет обработка текстовых данных. Для этой цели в системе MATLAB предусмотрен тип данных char (то есть "символ"). Текстовые данные, в том числе и одиночный символ, должны заключаться с обеих сторон апострофами:
c1 = 'a'; c2='abcd'; c3 = 'Hello, World!';
В результате таких присваиваний создаются переменные (естественно, это массивы - в системе MATLAB всё является массивами) типа char:
Из рисунка видно, что текстовые данные в системе MATLAB являются вектор-строками типа char (одна строка и несколько столбцов по числу содержащихся символов). Например, переменная c3 является символьным массивом (часто говорят - строкой символов) из 13 символов, занимающим 26 байт. Таким образом, под каждый символ отводится 2 байта. Каждый символ кодируется целым числом в соответствии со стандартной системой кодировки ASCII. Легко практически выяснить, какой код соответствует тому или иному символу. Следующий фрагмент
code = double(c1(1))
code= 9 7
показывает, что символу 'a' соответствует десятичное число 97.
Если после того, как переменная c3 получила текстовое значение 'Hello, World!', написать
c3 = 3.14;
то переменная c3 станет уже переменной типа double. Так как в сложных и громоздких M-функциях могут возникнуть ситуации, когда заранее неизвестен тип переменной в какой-либо момент времени исполнения функции, то с целью определения типа переменной следует применить функцию isa. Например, следующий вызов этой функции
Дата добавления: 2015-01-18 | Просмотры: 968 | Нарушение авторских прав
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
|