
- •1. Цель работы
- •2. Основы применения м-Файлов и основы программирования в matlab
- •2.1. Работа в редакторе м-файлов
- •2.2. Типы м-файлов
- •2.3. Установка путей
- •2.4. Файл-функции
- •2.4.1. Файл-функции с одним входным аргументом
- •2.4.2. Файл-функции с несколькими входными аргументами
- •2.4.3. Файл-функции с несколькими выходными аргументами
- •2.5. Основы программирования в MatLab
- •2.5.1. Оператор цикла for
- •2.5.2. Оператор цикла while
- •2.5.3. Условный оператор if
- •2.5.4. Оператор ветвления if-elseif-else
- •2.5.5. Оператор ветвления switch
- •2.5.6. Оператор прерывания цикла break
- •3. Индивидуальные задания
- •4. Содержание отчета
2.5.3. Условный оператор if
Условный оператор if позволяет создать разветвляющийся алгоритм выполнения команд, в котором при выполнении определенных условий работает соответствующий блок операторов или команд MatLab.
Оператор if может применяться в простом виде для выполнения блока команд при удовлетворении некоторого условия или в конструкции if-elseif-else для написания разветвляющихся алгоритмов.
Пусть
требуется вычислить выражение
.
Предположим, что вычисления выполняются
в области действительных чисел и
требуется вывести предупреждение о
том, что результат является комплексным
числом. Перед вычислением функции
следует произвести проверку значения
аргумента x,
и вывести в командное окно предупреждение,
если модуль x
не превосходит единицы. Здесь необходимо
применение условного оператора if,
применение которого в самом простом
случае выглядит так:
if условие
команды MatLab
end
Если условие выполняется, то реализуются команды MatLab, размещенные между if и end, а если условие не выполняется, то происходит переход к командам, расположенным после end. При записи условия используются операции, приведенные в табл. 1.
Файл-функция, проверяющая значение аргумента, приведена в следующем листинге. Команда warning служит для вывода предупреждения в командное окно.
Листинг файл-функции Rfun, проверяющей значение аргумента
function f = Rfun(x)
% вычисляет sqrt(x^2-1)
% выводит предупреждение, если результат комплексный
% использование y = Rfun(x)
% проверка аргумента
if abs(x)<1
warning('результат комплексный')
end
% вычисление функции
f = sqrt(x^2-1);
Теперь вызов Rfun от аргумента, меньшего единицы, приведет к выводу в командное окно предупреждения:
>> y = Rfun(0.2)
результат комплексный
y =
0 + 0.97979589711327i
Файл-функция Rfun только предупреждает о том, что ее значение комплексное, а все вычисления с ней продолжаются. Если же комплексный результат означает ошибку вычислений, то следует прекратить выполнение функции, используя команду error вместо warning.
2.5.4. Оператор ветвления if-elseif-else
В общем случае применение оператора ветвления if-elseif-else выглядит следующим образом:
if условие 1
команды MatLab
elseif условие 2
команды MatLab
elseif условие 3
команды MatLab
. . . . . . . . . . .
elseif условие N
команды MatLab
else
команды MatLab
end
В зависимости от выполнения того или иного из N условий работает соответствующая ветвь программы, если не выполняется ни одно из N условий, то реализуются команды MatLab, размещенные после else. После выполнения любой из ветвей происходит выход из оператора. Ветвей может быть сколько угодно или только две. В случае двух ветвей используется завершающее else, а elseif пропускается. Оператор должен всегда заканчиваться end.
Пример использования оператора if-elseif-else приведен в следующем листинге.
function ifdem(a)
% пример использования оператора if-elseif-else
if (a == 0)
warning('а равно нулю')
elseif a == 1
warning('а равно единице')
elseif a == 2
warning('а равно двум')
elseif a >= 3
warning('а, больше или равно трем')
else
warning('а меньше трех, и не равно нулю, единице, двум')
end