ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Порядок определения и вызова функцийВ первой главе данного пособия был показан порядок определения собственных функций в программе 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 Не нашли, что искали? Воспользуйтесь поиском:
|