Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учёба / 01_-_Osnovy_programmirovania

.pdf
Скачиваний:
9
Добавлен:
03.03.2016
Размер:
1.94 Mб
Скачать

Функции

»Типы

локальная

доступна любой другой функции внутри того же файла

вложенная

полностью содержится внутри другой функции

частная

доступна только для функций, расположенных в определенном месте (директории)

анонимная

позволяет определить функцию без создания файла

41

Локальные функции

»Функция в MATLAB может содержать более одной функции

Первая (главная) функция доступна из других файлов и может быть вызвана из командной строки

Дополнительные функции внутри того же файла называются

локальными

локальные функции видны другим функциям текущего файла

локальные функции эквивалентны подпрограмме и иногда называются

подфункциями

локальные функции могут создаваться в любом порядке после главной функции

каждая функция должна быть определена

для помощи

help главная>локальная

42

Вложенные функции

»Основная особенность вложенных функций – возможность доступа и изменения параметров родительской функции

могут использовать переменные, которые явно не передаются в качестве входных аргументов

»Требования к вложенным функциям

каждая функция должна заканчиваться ключевым словом end

невозможно определить вложенную функцию внутри операторов MATLAB таких как if/elseif/else, switch/case, for, while, или try/catch

вызов функции возможен только по имени или используя управление функцией, созданное при помощи оператора @

все переменные во вложенных функций или функций, которые их содержат, должны быть явно определены

не возможно вызывать функцию или скрипт, который присваивает значения переменных, если эти переменные уже не существуют в рабочем пространстве функции

43

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

»Для определения частной функции ее необходимо сохранить его в подпапке с именем private

функция доступна только функции из папки непосредственно над директорией private или в скриптах, которые находятся в родительской папке

»Доступ к помощи

help private/имя_функции

44

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

»Анонимная функция это функция, которая не хранится в файле программы

ассоциируется с переменной имеющей тип данных – function_handle (обработка функций)

»Анонимные функции могут иметь входы и возвращать выходы, аналогично стандартным функциям

однако, допускается только один исполняемый оператор

»Синтаксис

@(вход) оператор

»Многие MATLAB ® функции принимают обработку функции в качестве входных данных

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

45

Входные и выходные аргументы

»nargin

nargin – возвращает количество входных аргументов, передаваемых при вызове выполняемой в данный момент функции

только в теле функции

nargin(функция) возвращает количество входных аргументов, которые указаны в определении функции

если в функции используется varargin, то возвращается отрицательное число входов

»nargout

аналогично nargin

»varargin

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

используется в качестве последнего входного аргумента

при выполнении функции varargin представляет собой 1хN массив ячеек, где N является числом входов, что функция получает после явно объявленных входов

»varargout

аналогично varargin

46

Рабочие пространства

»Основное рабочее пространство хранит переменные, которые созданы в командной строке

это любые переменные, которые создают скрипты, которые запускаются из командной строки или из редактора

переменные существуют в основном рабочем пространстве пока не будут очищены или не закончена сессия MATLAB

»Функции не используют основное рабочее пространство

каждая функция имеет свое рабочее пространство

локальные функции в общем файле имеют свои собственные рабочие пространства

как и локальные функции, вложенные функции имеют свои собственные рабочие пространства

вложенные функции могут получать доступ и изменять переменные в рабочем пространстве функций, которые их содержат

все переменные во вложенных функциях или функциях, которые их содержат, должны быть явно определены

47

Глобальные переменные

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

»Глобальные переменные могут нести опасность. Например:

любая функция может получить доступ и обновлять глобальную переменную, поэтому другие функции, которые используют данные переменные могут дать непредвиденные результаты

если имя «новой» глобальной переменной совпадает с именем существующей глобальной переменной, одна функция может перезаписать значения, что трудно диагностировать

»Объявление

global переменные

в самой функции и в каждой из сред, использующих эти данные

»Для очистки глобальных переменных

clear global

48

Графический элемент – Меню

»Может рассматриваться как разновидность оператора ввода

»Генерирует на экран графическое окно с кнопками, предоставляя пользователю возможность выбора одного из полей

переменная=menu('заголовок','поле_1','поле_2',…)

порядковый номер поля присваивается в качестве значения переменной, указанной слева от операции присваивания

49

Соседние файлы в папке Учёба