
- •Работа в редакторе м-файлов
- •Типы м-файлов
- •Установка путей
- •Файл-функции
- •Файл-функции с одним входным аргументом
- •Файл-функции с несколькими входными аргументами
- •Файл-функции с несколькими выходными аргументами
- •Основы программирования в MatLab
- •Условный оператор if
- •If условие
- •Оператор ветвления if-elseif-else
- •If условие 1 команды MatLab elseif условие 2 команды MatLab elseif условие 3 команды MatLab . . . . . . . . . . . Elseif условие n команды MatLab else команды MatLab end
Файл-функции с несколькими входными аргументами
Написание файл-функций с несколькими входными аргументами практически не отличается от случая с одним аргументом. Все входные аргументы размещаются в списке через запятую. Например, следующий листинг содержит файл-функцию, вычисляющую произведение двух переданных ей аргументов. Листинг файл-функции с несколькими аргументами:
function r = mult(x, у) r = x.*y;
Для вычисления длины радиус-вектора теперь можно использовать функцию mult, например:
>> m = mult(3, 4);
m =
12
Кроме функций с несколькими входными аргументами, MatLab позволяет создавать функции, возвращающие несколько значений, т.е. имеющие несколько выходных аргументов.
Файл-функции с несколькими выходными аргументами
Файл-функции с несколькими выходными аргументами удобны при вычислении функций, возвращающих несколько значений (в математике они называются вектор-функциями). Выходные аргументы добавляются через запятую в список выходных аргументов, а сам список заключается в квадратные скобки. Хорошим примером является функция, переводящая время, заданное в секундах, в часы, минуты и секунды. Данная файл-функция приведена в следующем листинге.
Листинг функции перевода секунд в часы, минуты и секунды
function [hour, minute, second] = hms(sec) hour = floor(sec/3600); minute = floor((sec-hour*3600)/60); second = sec-hour*3600-minute*60;
При вызове файл-функций с несколькими выходными аргументами результат следует записывать в вектор соответствующей длины:
» [Н, М, S] = hms(10000) H = 2 М = 46 S = 40
Основы программирования в MatLab
Условный оператор if
Условный оператор if позволяет создать разветвляющийся алгоритм выполнения команд, в котором при выполнении определенных условий работает соответствующий блок операторов или команд MatLab.
Оператор if может применяться в простом виде для выполнения блока команд при удовлетворении некоторого условия или в конструкции if-elseif-else для написания разветвляющихся алгоритмов. Пусть требуется вычислить выражение . Предположим, что вычисления выполняются в области действительных чисел и требуется вывести предупреждение о том, что результат является комплексным числом. Перед вычислением функции следует произвести проверку значения аргумента x, и вывести в командное окно предупреждение, если модуль x не превосходит единицы. Здесь необходимо применение условного оператора if, применение которого в самом простом случае выглядит так:
If условие
команды MatLab
else
команды MatLab end
Если условие выполняется, то реализуются команды MatLab, размещенные между if и end, а если условие не выполняется, то происходит переход к командам, расположенным после end. При записи условия используются операции, приведенные в табл. 1.
Обозначение |
Операция отношения |
== |
Равенство |
< |
Меньше |
> |
Больше |
<= |
Меньше или равно |
>= |
Больше или равно |
~= |
Не равно |
Файл-функция, проверяющая значение аргумента, приведена в следующем листинге. Команда warning служит для вывода предупреждения в командное окно.
Листинг файл-функции myDiv, деление одного числа на другое с проверкой знаменателя на ноль:
function f = myDiv (x, y)
% проверка аргумента
if y == 0
warning('деление на ноль!')
else
% вычисление функции
f = x/y;
end
Если y будет равен нулю, то функция вычислена не будет.