АкушерствоАнатомияАнестезиологияВакцинопрофилактикаВалеологияВетеринарияГигиенаЗаболеванияИммунологияКардиологияНеврологияНефрологияОнкологияОториноларингологияОфтальмологияПаразитологияПедиатрияПервая помощьПсихиатрияПульмонологияРеанимацияРевматологияСтоматологияТерапияТоксикологияТравматологияУрологияФармакологияФармацевтикаФизиотерапияФтизиатрияХирургияЭндокринологияЭпидемиология

Matlab Editor / Debugger

Прочитайте:
  1. Графика в системе Matlab.
  2. Дополнительные возможности системы Matlab.

так как 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 | Просмотры: 729 | Нарушение авторских прав



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 |



При использовании материала ссылка на сайт medlec.org обязательна! (0.003 сек.)