
- •Лабораторная работа №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
- •Задания на лабораторную работу
- •Варианты задания

>>normalCdF(3) - normalCdF(-3) ans =
0.9973
>>normalCdF(2) - normalCdF(-2) ans =
0.9545
Оператор цикла while
Данный оператор имеет следующий синтаксис:
while условие_продолжение_цикла операторы_тела_цикла;
end
Логика работы этого цикла следующая:
сначала проверяется условие_продолжение_цикла, если оно ложно, то цикл заканчивается и выполняются операторы за циклом;
если условие_продолжение_цикла оказалось истинным, то выполняется тело цикла, и потом снова проверяется условие_продолжение_цикла, и цикл будет продолжаться пока оно истинно.
В качестве примера использование цикла while приведем вычисление наибольшего общего делителя двух чисел:
function [ res ] = myGCD( a, b )
% вычисление наибольшего общего делителя чисел a и b
while a ~= b if a > b
a = a - b;
else
b = b - a;
end
end
% сохранить результат в выходную переменную res = a;
end
Для примера работы данной функции вызовем ее из консоли MATLAB:
33

>>myGCD(120, 7) ans =
1
>>myGCD(196, 700) ans =
28
>>myGCD(78, 66) ans =
6
Заметим, что как было показано в примере выше, все описанные конструкции ветвления и циклов можно вкладывать друг в друга.
Проверка корректности входных переменных
Как правило, каждая функция должная выполнять проверку корректности своих параметров. Так в предыдущем примере следовало бы проверить, что числа a и b не имеют дробных частей (в MATLAB по умолчанию любое число имеет тип double). В случае если параметры имеют некорректное значение, то функция должна каким-то образом сообщить об этом вызывающей программе. В MATLAB для этого как правило используется функция, error, принимающая самом простом случае текст описывающей ошибку, и прерывающая работу текущей функции, и если ошибка не перехвачена, то и работу программы. Приведем пример использования этой функции:
function [ res ] = myGCD( a, b )
%вычисление наибольшего общего делителя чисел a и b
%проверка, что числа a и b не имеют дробных частей if a ~= round(a) || b ~= round(b)
error('Входные аргументы должны быть целыми');
end
while a ~= b if a > b
a = a - b;
else
b = b - a;
end
end
34