Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
matlab.doc
Скачиваний:
59
Добавлен:
24.08.2019
Размер:
2 Мб
Скачать
☆
  1. Создание и отладка программных файлов.

Программами в системе MATLAB являются m-файлы текстового формата, содержащие запись программ в виде программных кодов. Основными средствами программирования являются:

  • данные различных типов,

  • операторы,

  • функции пользователя,

  • управляющие структуры,

  • системные операторы и функции,

  • средства расширения языка.

В MATLAB определены следующие основные типы данных: single, double, char, logical, sparse, cell, struct, function_handle, Java classes и др. Кроме того, предусмотрен тип данных UserObject (тип данных, определяемый пользователем). Каждому типу данных можно соотнести характерные для него операции.

Язык программирования системы MATLAB ориентирован на структурное программирование, в нем нет номеров строк и оператора безусловного перехода GO TO. Имеются управляющие структуры следующих типов:

  • условный оператор if...elseif...else...end, простейший вариант: if условие инструкции end;

  • цикл типа for...end, конструкция цикла имеет вид: for var=b:s:f , инструкции, end, где b – начальное значение переменной цикла var, s – шаг (по умолчанию s=1), f – конечное значение переменной var;

  • цикл типа while...end, конструкция цикла имеет вид: while условие инструкции end, досрочный выход из цикла может быть реализован с помощью операторов break и continue;

  • переключатель switch...case...otherwise...end;

  • конструкция try...catch...end.

Имеются также функции диалогового ввода и вывода:

  • r=input (‘String’) или input (‘String’,’s’);

  • disp(X).

Функция pause (или pause(N)) позволяет приостановить выполнение программы, N – количество секунд. Функции tic и toc позволяют включить и выключить таймер.

Программы вызываются по имени, под которым записаны в виде файла с расширением .m. Имя программы начинается с латинской буквы и состоит из таких букв и цифр. При первом обращении программа ищется на диске. Рекомендуется записать программу в текущую директорию. Поиск m-файла по ключевому слову осуществляется командой lookfor. Путь к программе можно указать командой path.

Программы бывают двух видов: сценарии (scripts) и функции (functions). Программа-скрипт представляет собой набор команд без входных и выходных параметров. Она может использовать все переменные рабочей области, а не только те, что создаются в ней. Собственные переменные скрипта располагаются в рабочей области без защиты от внешнего доступа, что позволяет передать управление из скрипта в командную строку с помощью команды keyboard (без параметров), при этом работа в командной строке заканчивается командой return. Таким образом, скрипт удобен для работы в интерактивном режиме, но требует повышенного внимания при использовании в нем своих переменных.

Пример программы-скрипта (определение локальных максимумов вещественного вектора):

m=length(x); % вычисление длины вектора x

v=2:m-1; % формирование вектора индексов

i=find(x(v-1)<x(v)&x(v)>x(v+1))+1; % поиск индексов локальных максимумов

y=x(i); % значения локальных максимумов

После набора программы ее следует сохранить, например, под именем lokmax.m. Теперь возможен ее вызов из командной строки:

>> x=[1,2,-3,3,-2,4]; lokmax, [y;i]

y =2 3

i =2 4

Комментарий, включенный в программу, выводится командой:

>> help имя файла

Первая строка программы-функции имеет вид: function [y1,y2,...yj]=ff(x1,x2,...xi), где ff – имя функции, x1,x2,...xi – входные формальные параметры, y1,y2,...yj – выходные формальные параметры. Обращение к функции записывается так: [v1,v2,...vj]=ff(u1,u2,...ui), где u1,u2,...ui,v1,v2,...vj – фактические параметры. Входных аргументов у функции может и не быть. Все переменные программы-функции имеют локальный характер и недоступны для их использования извне. Если при создании файла-функции желательно применение глобальных переменных, то следует подать команду: global var1 var2... . Таким образом, программа-функция неудобна для использования в интерактивном режиме, но любая ее переменная может быть открыта для использования в командной строке.

Пример программы-функции (та же задача):

function [y,i]=lokmax(x)

m=length(x);

v=2:m-1;

i=find(x(v-1)<x(v)&x(v)>x(v+1))+1;

y=x(i);

После сохранения функции к ней можно обратиться из командной строки:

>> x=[1,2,-3,3,-2,4]; [y,i]= lokmax(x)

и получить тот же ответ.

Файлы-функции могут вызываться так же из других m-файлов. Начиная с версии 5.0 появилась возможность включать в тело основной функции подфункции. Они имеют идентичную конструкцию.

При создании программ-функций часто бывают полезны две функции:

  • nargin – возвращает число входных параметров данной функции;

  • nargout - возвращает число выходных параметров данной функции;

Иногда в программе-функции бывает необходимо выдать сообщение об ошибке, для этого служит команда error (‘сообщение’).

Важным этапом программирования является отладка программы. MATLAB располагает большими возможностями, облегчающими процесс отладки. В частности, полный листинг программного файла можно вывести с помощью команды:

>> type имя файла (или для вывода листинга с пронумерованными строками dbtype)

Для установки в тестируемый m-файл точек прерывания используются команды:

>> dbstop in M-file at lineno – установить точку прерывания в заданной строке;

>> dbstop in M-file at subfun – установить точку прерывания в подфункции;

>> dbstop if error – установить точку прерывания при сообщении об ошибке.

Команда dbstatus (без параметров) выводит список установленных в данной сессии точек прерывания. Для удаления точек прерывания используется команда dbclear с тем же синтаксисом, что и dbstop, например

>> dbclear M-file at lineno.

Для пошагового выполнения программы используется команда dbstep (или dbstep nlines для выполнения заданного числа строк).

Для редактирования и отладки m-файлов в MATLAB существует специальный многооконный редактор, выполненный как типичное приложение Windows. Он позволяет нумеровать строки, устанавливать контрольные точки, вычислять переменные по месту нахождения, получать справку и прочее (вход в редактор осуществляется из главного меню: (File – M-file).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]