Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
Глава 4. Программирование функций в MatLabЧасто при программировании приходится много раз повторять одни и те же вычисления, например, определение модуля числа или расчет евклидового расстояния между точками и т.п. Для реализации таких повторяющихся вычислений целесообразно создавать функции и вызывать их по мере необходимости.
4.1. Порядок определения и вызова функцийВ первой главе данного пособия был показан порядок определения собственных функций в программе MatLab. В данном параграфе остановимся на более подробном описании программирования пользовательских функций. Синтаксис для определения собственных
функций в MatLab имеет следующий
вид:
function [ RetVal1,
RetVal2,… ] = FunctionName( arg1, arg2,… )
где RetVal1, RetVal2,... – набор возвращаемых значений функцией (результаты работы); arg1, arg2,... – набор входных аргументов; тело функции – набор операторов (программа), которые выполняются при вызове функции. Рассмотрим пример реализации функции для
вычисления евклидового расстояния:
function length = euqlid(x1,
y1, x2, y2)
Продемонстрируем возможность возвращения
нескольких параметров на примере вычисления ширины и высоты прямоугольника,
заданного координатами левого верхнего угла (x1,y1) и правого
нижнего (x2,y2):
function [width, height] =
RectangleHW(x1,y1,x2,y2)
Данную
функцию можно записать еще и с таким набором параметров:
function [width, height] =
RectangleHW(P1, P2)
где
P1 и P2 – векторы
(массивы) размером в 2 элемента и описывают точку в двумерном пространстве. В
этом случае при вызове функции, значения координат точек можно передавать таким
образом:
[W, H]
= RectangleHW([0 0], [10 20]);
Если же программист сделает ошибку и при
вызове функции передаст неверный размер вектора, например, так
[W, H]
= RectangleHW(0, [10 20]);
то
выполнение функции завершится с ошибкой и выполнение всего алгоритма
остановится. Чтобы избежать этой ситуации MatLab позволяет
проводить проверку корректности переданных аргументов и корректно завершать
работу функции без остановки работы всего алгоритма. Следующий пример записи
функции демонстрирует работу такой проверки:
function [width, height] = RectangleHW(P1, P2)
При выполнении данной функции с неверными параметрами, функция выдаст сообщение об ошибке в командное окно MatLab, но программа продолжит свою работу. Предложенная проверка осуществляет контроль за корректностью переданных аргументов. Однако важной является также проверка числа переданных входных аргументов и числа возвращаемых значений функцией. Например, если вместо двух аргументов, был передан только один, то функция ошибочно завершит свою работу. Аналогично, если функция ожидает возврата трех аргументов, в то время как она определена лишь для двух, то также возникнет ошибочная ситуация. Для проверки числа переданных аргументов
и числа ожидающих возвращаемых значений используются переменные nargin и nargout. Ниже приведен
пример функции, использующей проверку корректности числа входных и выходных
аргументов.
function [width, height] =
RectangleHW(P1, P2)
При
этом проверки корректности параметров функции будут срабатывать в следующих
ситуациях:
[W, H] = RectangleHW([0 0]); %
Bad number of parameters
|
1 |
Оглавление
|