
- •Лабораторная работа №1. Введение в MATLAB
- •Краткая характеристика MATLAB
- •Описание интерфейса MATLAB
- •Работа с MATLAB в режиме командной строки
- •Объявление переменных
- •Удаление созданных переменных
- •Создание матриц и векторов
- •Поэлементные операции над матрицами
- •Основы построения графиков
- •Задания на лабораторную работу
- •Примечание к заданию
- •Варианты задания
- •Лабораторная работа №2. Программы в MATLAB
- •Скрипты
- •Рабочая область в MATLAB
- •Комментарии
- •Функции
- •Фактические и формальные параметры функции
- •Рабочая область функции
- •Скрипты и функции
- •Передача параметров по значению
- •Анонимные функции
- •Документирование функций
- •Отладка
- •Задание на лабораторную работу
- •Варианты заданий
- •Лабораторная работа №3. Условные выражения и циклы
- •Управление потоками в MATLAB
- •Оператор ветвления if/elseif/else
- •Оператор цикла for
- •Оператор цикла while
- •Проверка корректности входных переменных
- •Задания на лабораторную работу
- •Варианты задания
- •Лабораторная работа №4. Вектора и матрицы
- •Создание векторов и матриц в MATLAB.
- •Обращение к элементам матриц.
- •Заполнение матриц
- •Операции деления, умножения и возведения в степень.
- •Создание матриц специального вида
- •Объединение матриц
- •Удаление строк и столбцов
- •Задания на лабораторную работу
- •Лабораторная работа №5. Ввод-вывод
- •Организация ввод-вывод в MATLAB
- •Строки
- •Функция disp
- •Функция input
- •Функция fprintf
- •Организация диалога с пользователем и вывод таблицы с использованием форматированного вывод
- •Задания на лабораторную работу
- •Варианты задания
- •Лабораторная работа №6. Графические возможности в MATLAB
- •Основы графики в MATALB
- •Оформление графиков
- •Вывод нескольких графиков в текущее окно
- •Функция eval
- •Задания на лабораторную работу
- •Варианты задания

Лабораторная работа №2. Программы в MATLAB
Скрипты
Наряду с работой в командной строке, существует еще один способ выполнения команд. Это написание программ.
Скрипт — последовательность команд MATLAB, записанная в файл с расширением «.m». Это обычные текстовые файлы. Для их написания можно использовать любой текстовый редактор.
Чтобы создать скрипт, в общем случае достаточно иметь под рукой обычный текстовый редактор. Мы будем использовать встроенный в среду MATLAB редактор. Используйте кнопку «New Script» в верхнем левом углу для создания нового скрипта. После нажатия данной кнопки появится окно текстового редактора (рисунок 5).
Рисунок 5. Редактор кода MATLAB Создадим небольшую программу:
fprintf('Hello World!\n')
Теперь необходимо сохранить данный скрипт, для этого надо нажать на кнопку «Save» в левом верхнем углу, после чего MATLAB предложит сохранить его в текущей директории («Current Folder»). Дадим скрипту имя «Example1.m» и сохраним его. Желательно, чтобы скрипт был сохранен в текущей директории, так MATLAB будет искать скрипты для запуска
15

в папках, которые перечислены во внутренней переменной MATLAB path. Также в этот список входит и текущая директория, отображаемая в среде MATLAB справа в специальной плавающей области. По умолчанию скрипт будет сохранен в текущий каталог, поэтому можно сразу же сделать его вызов. Запустить скрипт на выполнение можно введя его имя (имя m-файла в который он был сохранен) в командной строке и нажав «Enter» или кнопку «Run» в редакторе кода. В обоих случаях в командном окне отобразится следующий вывод:
>> Example1 Hello World!
Рассмотрим другой пример. Имеется скрипт:
x = 0:0.02:2*pi; a = 0.3;
b = 0.7;
y = a * sin(x) + b * cos(x); plot(x, y)
Сохраним в файл Example2.m и запустим на выполнение. В результате MATLAB посчитает и выведет на экран график функции y=a sin( x)+b cos(x ) .
Так же отметим, что после выполнения скрипта в окне «Workspace» появились переменные x, a, b и y. Для объяснения почему так получилось, рассмотри очень важно понятие в MATLAB как рабочая область.
Рабочая область в MATLAB
Рабочая область системы MATLAB — это область памяти, в которой размещены переменные системы. Рабочие области в MATLAB бывают двух типов:
•base workspace — базовая рабочая область;
•function workspace — рабочая область функции.
Все переменные в рабочей области существуют в ней с момента их объявления при работе с данной рабочей областью и до явного их удаления с помощью команды clear или до конца действия данной рабочей области, например для базовой рабочей области это закрытие MATLAB.
При запуске скрипта он не создает новую рабочую область, а работает с рабочей областью откуда был вызван.
Когда мы вызываем скрипт из командного окна, то он работает с работает с базовой рабочей областью, поэтому ему доступны все переменны, которые мы создали до вызова скрипта. Так же если скрипт создаст еще переменные, то они останутся доступными и после
16

его завершения.
Комментарии
Хорошим тоном в написании программного кода считается составлять комментарии к написанному вами коду. Комментарии никак не влияют на работу программы и служат для предоставления дополнительной информации. Комментарии помогут другим людям разобраться в вашем алгоритме и помогут вам вспомнить суть написанного через какой-то промежуток времени, когда вы уже забыли что программировали. Для указания начала комментария в MATLAB используется символ «%».
%Генерация равномерно распределенных случайных чисел
%Подсчет математического ожидания сгенерированных чисел
%Отображение данных на графике
n = 50; |
% 50 случайных чисел |
r = rand(n,1); |
% Сформировать и присвоить вектор случайных |
значений переменной r |
|
plot(r) |
% Отобразить на графике сформированный вектор |
% Проводим линию |
через (0, m) и (n, m) |
m = mean(r); |
% Вычислить среднее арифметическое по значениям |
вектора r |
|
hold on |
|
plot([0,n],[m,m]) |
|
hold off |
|
title('Mean of Random Uniform Data') % Название графика
Функции
Еще одна разновидность программ MATLAB — функции. В отличии от скриптов при вызове функция создает новую рабочую область, поэтому внутри функции не будут видны переменны, объявленные вне ее кода. Поэтому для связи функции с внешним кодом используются входные и выходные параметры. Рассмотрим общий синтаксис объявления функции:
function [y1,...,yN] = имя_функции(x1,...,xM) оператор_1 оператор_2
…
оператор_n end
Функция содержится в отдельном m-файле.
Функция начинается с ключевого слова function, за которым следуют в квадратных
17

скобках через запятую имена выходных переменных. Далее идет знак «=» и имя функции. Имя функции подчиняется тем же правилам, что и имена переменных. Так же отметим, что имя функции обязательно должно совпадать с именем файла, в котором она определена. После имени функции в круглых скобках через запятую идут имена входных параметров.
Следующие строки содержат тело функции (любые допустимые выражения MATLAB).
В конце функция заканчивается ключевым словом end, однако оно не является обязательным, и его можно опустить.
Так же отметим, что если функция возвращает только один параметр, то его не обязательно заключать в квадратные скобки, например:
function s = triaArea( a, b )
%вычисление площади прямоугольного треугольника
%a, b - катеты треугольника
s = a * b / 2; end
Если функция вообще не возвращает параметры, то сразу после ключевого слова function идет имя функции, например:
function hellowWorld()
% пример функции без входных и выходных параметров disp('Hello world!');
end
Для вызова функции применяется следующий синтаксис:
[k1, ..., kN] = имя_функции(z1,...,zM)
где k1, ..., kN — переменны, куда будут записаны выходные значения функции, а z1,...,zM — аргументы функции.
В случае если функция возвращает только один параметр, то квадратные скобки можно опустить, например:
s = triaArea(1,2)
Фактические и формальные параметры функции
Важно различать фактические и формальные параметры функции:
•фактический параметр — аргумент, передаваемый в функцию при ее вызове;
•формальный параметр — аргумент, указываемый при объявлении или определении функции.
Поясним данное различие на примере:
18