Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
matlab_shpora.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
1.52 Mб
Скачать

13Анонимные функции

Анонимные функции – это простая форма функции MATLAB , не требующая создания M-файла. Она состоит из единственного выражения MATLAB и любого числа входных и выходных параметров. Определить анонимную функцию можно непосредственно в командной строке ко-мандного окна MATLAB , а также внутри М- файла. Это обеспечивает возможность быстрого создания простых функций без необходимости создания дополнительногоM-файла. Синтаксис определения анонимной функции из выражения следующий: f= @(arglist)expression Представленная ниже команда создает анонимную функцию, которая вычисляет квадрат числа. При вызове этой функции MATLAB присваивает передаваемое значение переменной x и затем использует x в выражении x.^2:sqr= @(x)x.^2; Используется описанная функция следующим образом: a=sqr(5) a= 25

14 Частные функции

Частная функция – это разновидность первичной функции M - файла. Ее особенностью является то, что она видима только для ограниченной группы функций. Данный тип функций удобен, если необходимо ограничить доступ к функции. Частные функции размещаются в подкаталогах со специальным именем private. Они являются видимыми только функциям, находящимся в каталоге предыдущего уровня. Например, текущий каталог Current Directory MATLAB установлен на каталог newmath. Подкаталог каталога newmath , названный private , содержит функции, которые могут вызываться только функциями из newmath. Поскольку частные функции видимы только в каталоге предыдущего уровня, они могут использовать те же самые имена, что и функции в других каталогах. Это удобно при создании собственной версии определенной функции, поскольку оригинал сохранен в другом каталоге. Так как MATLAB в первую очередь ищет частные функции и только после этого стандартные функции M - файла, то, например, вместо нечастной функции с именем test .m он найдет частную функцию test . m.

15 Видимость имен функций

Когда пользователь вводит в командной строке какое -либо имя, например name, MATLAB выполняет действия в следующей последовательности:

1) ищет указанное имя среди переменных ;

2) ищет в текущем каталоге файл с именем name .m;

3) просматривает каталоги, указанные в пути поиска SearchPath , для поиска файла name .bi (встроенные функции) или name.m.

Если существует более одной функции с одним и тем же именем, то порядок каталогов в пути поиска SearchPath определяет, какая функция будет вызвана. MATLAB вызывает первую найденную функцию. Для того чтобы вызвать функцию из каталога, расположенного дальше в пути поиска, следует сделать этот каталог текущим. При запуске M-сценария можно указать полный путь к соответствующему M-файлу.

16 Проверка параметров m-функций

Несовпадение типов, размеров и числа фактических и формальных параметров в M-функции приводит к их неправильной работе. Желательно встраивать внутрь кода M-функций проверки входных параметров, так как пользователь M-функции всегда может ошибиться при ее вызове. Такие проверки приводят к тому, что функцию можно вызвать только с правильным числом входных параметров и возвращаемых значений. В случае, когда функция допускает многовариантность работы при разном числе входных аргументов и возвращаемых значений (как многие встроенные функции системы MATLAB ), необходимо при проверках их числа вместо прекращения работы функции осуществлять переход на разные ветви выполнения. В определении функции при этом нужно использовать максимально используемое в теле функции число формальных входных и выходных параметров. Степень подробности проверок зависит от предназначения функции. Если предполагается передача функции для внешнего использования, то проверки необходимо сделать более строгими, а текст подсказки, выводимый в командное окно по команде help, более подробным. Таблица

Функции MATLAB для работы аргументами

nargchk Проверка количества входных аргументов

nargin Проверка количества входных аргументов

nargout Проверка количества выходных аргументов

varargin Список входных аргументов переменной длины

varargout Список выходных аргументов переменной длины

inputname Определение имени переменной по номеру входного аргумента М-функции

17-18 Переменные и их область действия

Область действия (scope rules ) переменной – это правила, которые устанавливают, какие данные доступны из данного места программы. В языке MATLAB каждая функция–это отдельный блок программы. Попасть в тело функции нельзя иначе, как через вызов данной функции. С точки зрения области действия переменных различают три типа переменных: глобальные, локальные и формальные параметры. Правила области действия определяют, где каждая из них может применяться.. Локальные переменные–это переменные, объявленные внутри функции. Формальные параметры– это переменные, объявленные при описании функции как ее аргументы. Глобальные переменные в языке MATLAB–это переменные, объявленные при помощи ключевого слова global : global name_1, name _2, …

Как правило, каждая М-функция использует локальные переменные, которые изолированы от переменных других функций и рабочей области. Функция располагает собственным, изолированным от рабочего пространства системы MATLAB, пространством переменных. Внутри функции не видны переменные, определенные в командном окне MATLAB , – они являются внешними по отношению к функции.

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