Лабораторная работа № 3. Создание и использование m-файлов: сценариев и простейших файл - функций
Создание и использование m-файлов: сценариев и простейших файл - функций. Отладка программ. Сценарии. Установка путей поиска. Функции. Глобальные переменные. Редактор/отладчик m-файлов. Работа из командной строки MATLAB затруднена, если требуется вводить много команд и часто их изменять. Ведение дневника при помощи команды diary и сохранение рабочей среды лишь незначительно облегчает работу. Самым удобным способом выполнения команд MATLAB является использование М-файлов, в которых можно набирать команды, выполнять их все сразу или частями, сохранять в файле и использовать в дальнейшем. Для работы с М-файлами предназначен редактор М-файлов. При помощи этого редактора можно создавать собственные функции и вызывать их, в том числе и из командной строки. М-файлы в MATLAB бывают двух типов: файл-программы (Script M-Files), содержащие последовательность команд, и файл-функции (Function M-Files), в которых описываются функции, определяемые пользователем. Скрипты (Script M-Files) – цепочки команд MATLAB, сохраненные в текстовый файл с расширением m, так называемый m-файл. Особенности скриптов: o работают только с переменными рабочего пространства; o могут обращаться к любым стандартным и нестандартным функциям; o несколько скриптов могут работать последовательно друг за другом, передавая данные следующему скрипту через общее рабочее пространство или запоминая промежуточные результаты в файлах; o в скриптах отсутствуют локальные переменные. Скрипт может быть подготовлен в любом текстовом редакторе и сохранен с расширением m или с помощью встроенного в MATLAB редактора m-файлов, вызываемого по команде "File/New/M-file". Функции (Function M-Files) – более удобная разновидность скриптов, первой строкой которых является заголовок, использующий оператор function. Особенности функций: o могут получать исходные данные в виде списка входных параметров и возвращать результаты своей работы также в виде списка выходных параметров; o возможен доступ к глобальным переменным рабочего пространства (через оператор global); o все переменные, появляющиеся в теле функции, являются локальными; o имя m-файла должно совпадать с именем функции. В любом m-файле можно описать несколько функций, но извне можно вызвать только первую. Остальные функции называются подфункциями. MATLAB выполняет m-файлы, как правило в режиме интерпретации, что существенно снижает скорость работы по сравнению с компилирующими системами. Для повышения производительности MATLAB при первом обращении к скрипту (функции) формирует псевдокод (p-code), который остается в оперативной памяти либо до конца сеанса, либо до очистки оперативной памяти одной из следующих команд. Любой m-файл может быть превращен в псевдокод с помощью процедуры pcode: pcode имя_m-файла. Результатом работы является двоичный файл с тем же именем и расширением p. Комментарии Комментарии в m -файлах начинаются с символа %. Могут находиться сначала строки или правее любого оператора. Первая группа строк с подряд идущими комментариями до пустой строки образует текст, выдаваемый в командном окне по команде help с именем m-файла. Параметры функций В языке MATLAB входные и выходные аргументы функций четко разделены. Все входные параметры используют позиционный принцип и задаются в круглых скобках после имени функции. Для переменного числа аргументов MATLAB упаковывает все входные параметры в массив ячеек с именем varargin, а количество передаваемых аргументов – в глобальной переменной nargin. Все выходные параметры объявляются как массив результатов и в операторах присваивания обычно записываются в квадратных скобках. Для переменного числа аргументов используется запись заголовка function [varargout]=имя_функции(аргументы) то есть результаты работы функции должны присваиваться компонентам массива ячеек varargout. При этом к функции можно обращаться с разным количеством выходных параметров: [y1,y2,y3]=имя_функции(аргументы) w1=имя_функции(аргументы) Через переменную nargout передают требуемое число результатов. Например, функция polyline.m получает массив переменной длины с координатами точек (x,y1), (x2,y2),… и строит ломаную линию, соединяющую эти точки. Построение графиков в MATLAB. Цель работы: 1. Построение графиков функций. 2. Получение практических навыков работы в диалоговом режиме. Задание к работе Задача 1. 1. Вводим текст в виде комментария, как заглавие программы. 2. Вводим исходные данные. 3. Задаем изменение аргумента. 4. Вычисляем значения функций 1 и 2 для аргумента в заданном интервале. 5. Выводим графики функций одновременно на одном графике в декартовых координатах. Для разных графиков использовать разный тип линий. Задача 2. 1. Пункты 1...4 задачи 1. 2. Выводим графики функций в двух подокнах на одном графике. Графики в столбиковом формате.
Функция 1 y = sin(x) Функция 2 z = exp(x+3)/5000 - 1 Начальное значение аргумента a = -2p Конечное значение аргумента b = 2p Шаг изменения аргумента h = p/20
Задача 1:
Рисунок 1 – Выполнение задачи 1
Рисунок 2 – Figure 1 Рисунок 3 – Figure 2
Задача 2:
Рисунок 4 – Выполнение задачи 2
Рисунок 5 – Figure 1(задача 2)
|