- •Основы программирования matlab Краткие сведения о программировании в matlab1
- •1. Основные операторы
- •1.1. Оператор цикла for
- •1.2. Оператор цикла while
- •1.3. Условный оператор if
- •1.4. Оператор ветвления if-elseif-else
- •1.5. Оператор ветвления switch
- •1.6. Оператор прерывания цикла break
- •2. Построение графиков
- •Построение графиков функции одной переменной
- •2.1. Графики функций в линейном масштабе
- •2.3. Задание свойств линий на графиках функций
- •2.4. Оформление графиков функций
- •3. Построение графиков функций двух переменных
- •4. Построение контурных графиков функций двух переменных
- •5. Оформление графиков функций
- •6. Вывод нескольких графиков на одни оси
- •3. Построение таблиц
1.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.
1.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