Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MatLab2.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
36.18 Кб
Скачать
    1. Файл-функции с несколькими входными аргументами

Написание файл-функций с несколькими входными аргументами практически не отличается от случая с одним аргументом. Все входные аргументы размещаются в списке через запятую. Например, следующий листинг содержит файл-функцию, вычисляющую произведение двух переданных ей аргументов. Листинг файл-функции с несколькими аргументами:

function r = mult(x, у)  r = x.*y;

Для вычисления длины радиус-вектора теперь можно использовать функцию mult, например:

>> m = mult(3, 4);

m =

12

Кроме функций с несколькими входными аргументами, MatLab позволяет создавать функции, возвращающие несколько значений, т.е. имеющие несколько выходных аргументов.

    1. Файл-функции с несколькими выходными аргументами

Файл-функции с несколькими выходными аргументами удобны при вычислении функций, возвращающих несколько значений (в математике они называются вектор-функциями). Выходные аргументы добавляются через запятую в список выходных аргументов, а сам список заключается в квадратные скобки. Хорошим примером является функция, переводящая время, заданное в секундах, в часы, минуты и секунды. Данная файл-функция приведена в следующем листинге.

Листинг функции перевода секунд в часы, минуты и секунды

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

  1. Основы программирования в MatLab

  1. Условный оператор 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 будет равен нулю, то функция вычислена не будет.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]