Целью лабораторной работы является изучение простых приемов языка программирования среды MatLAB. Основной задачей ставится изучение типовых конструкций языка, таких как функции, условия и циклы.
Работа в режиме калькулятора в среде MatLAB, несмотря на довольно значительные возможности, во многих отношениях неудобна. Невозможно повторить предшествующие вычисления и действия при новых значениях исходных данных без повторного набора предшествующих операторов. Нельзя возвратиться назад и повторить некоторые действия, или по некоторому условию перейти к выполнению другой последовательности операторов. И вообще, если количество операторов значительно, становится проблемой отладить правильную их работу из-за неминуемых ошибок при наборе команд. Поэтому сложные, с прерываниями, сложными переходами по определённым условиям, с часто повторяемыми однотипными действиями вычисления, которые, вдобавок, необходимо проводить неоднократно при изменённых исходных данных, требуют их специального оформления в виде записанных на диске файлов, т. е. в виде программ. Преимущество программ в том, что, так как они зафиксированы в виде записанных файлов, становится возможным многократное обращение к одним и тем же операторам и к программе в целом. Это позволяет упростить процесс отладки программы, сделать процесс вычислений более наглядным и прозрачным, а благодаря этому резко уменьшить возможность появления ошибок при разработке программ. Кроме того, в программах возникает возможность автоматизировать также и процесс изменения значений первоначальных параметров в диалоговом режиме.
3.1. Создание программ (m-файлов) в MatLab.
3.1.1. Общие правила и особенности создания m-файлов
Создание программы в среде MatLAB осуществляется с помощью либо собственного встроенного (начиная из версии MatLAB 5), либо стороннего текстового редактора, который автоматически вызовется, если его предварительно установить с помощью команды Preferences меню Fileкомандного окна MatLAB. Например, это может быть редактор Notepade среды Windows. Окно предварительно установленного редактора появляется на экране, если перед этим вызвана команда fileиз меню New или выбрано название одного из существующих M-файлов при вызове команды Open fileиз меню Fileкомандного окна. В первом случае окно текстового редактора будет пустым, во втором - в нем будет содержаться текст вызванного M-файла. В обоих случаях окно текстового редактора готово для ввода нового текста или корректировки существующего.
Программы на языке MatLAB имеют две разновидности - так называемые Script-файлы(файлы-сценарии, или управляющие программы) и файлы-функции (процедуры). Обе разновидности должны иметь расширение имени файла .m, т. е. их нельзя различить по типу файла. С помощью Script-файлов оформляют основные программы, управляющие от начала до конца организацией всего вычислительного процесса, и отдельные части основных программ (они могут быть записаны в виде отдельных Script-файлов). Как файл-функции оформляются отдельные процедуры и функции (т. е. такие части программы, которые рассчитаны на неоднократное использование Script-файлами или другими процедурами при изменённых значениях исходных параметров и не могут быть выполнены без предварительного задания значений переменных, которые называют входными).
Главным внешним отличием текстов этих двух видов файлов является то, что файл-функции имеют первую строку вида
function <ПКВ> = <имя процедуры >(<ПВВ>),
где обозначен ПКВ - Перечень Конечных Величин, ПВВ - Перечень Входных Величин. Script-файлы такой строки не имеют.
Принципиальное же отличие состоит в совсем различном восприятии системой имен переменных в этих двух видах файлов.
В файл-функциях все имена переменных внутри файла, а также имена переменных, указанные в заголовке (ПКВ и ПВВ), воспринимаются как локальные, т.е. все значения этих переменных после завершения работы процедуры исчезают, и область оперативной памяти ПК, которая была отведена под запись значений этих переменных, освобождается для записи в нее значений других переменных.
В Script-файлах все используемые переменные образуют так называемое рабочее пространство (Work Space). Значение и содержание их сохраняются не только на протяжении времени работы программы, но и на протяжении всего сеанса работы с системой, а, значит, и при переходе от выполнения одного Script-файла к другому. Иначе говоря, рабочее пространство является единым для всех Script-файлов, вызываемых в текущем сеансе работы с системой. Благодаря этому любой длинный Script-файл можно разбить на несколько фрагментов, оформить каждый из них в виде отдельного Script-файла, а в главном Script-файле вместо соответствующего фрагмента записать оператор вызова Script-файла, представляющего этот фрагмент. Этим обеспечивается компактное и наглядное представление даже довольно сложной программы.
За исключением указанных отличий, файл-функции и Script-файлы оформляются одинаково.