русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Файл-функции


Дата добавления: 2015-06-12; просмотров: 1136; Нарушение авторских прав


 

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

Ниже представлен M-файл-функция с именем rad.m, созданный для нахождения длины d = радиус - вектора точки (x;y;z) трехмерного пространства:

function d=rad(x,y,z)

%Вычисление длины d=sqrt(x^2+y^2+z^2) радиус-вектора точки (x;y;z)

d=sqrt(x^2+y^2+z^2);

Структура M-файлов-функций следующая.

Первая строка в M-файле-функции называется строкой определения функции и начинается со слова function. В окне редактора M-файлов это зарезервированное слово выделяется синим цветом. Первая строка M-файла задает имя функции, а также количество аргументов (или параметров) ввода и вывода. В этом примере функция называется rad. Имя файла (за исключением расширения .m) и имя функции должны совпадать. Когда вы создаете этот новый M-файл-функцию в безымянном окне редактора и выбираете команду Save (Сохранить), модуль Editor (Редактор) сам присваивает файлу имя rad.m. Функция в нашем примере имеет для ввода три элемента, которые внутри M-файла обозначены как x, y, z. В качестве результата возращаетсяодин элемент – значение d, появляющееся в конце выполнения функции.

За строкой определения функции может следовать несколько строк - комментариев, начинающихся со знака процента %. Эти строки называются текстом справки об используемой функции и отображаются при вводе команды help. В M-файле rad.m присутствует только одна строка текста справки; она отображается при введении команды help rad.

Остальные строки содержат выражения системы MATLAB, которые производят вычисление значений функции. Строки комментариев (строки, начинающиеся со знака процента %) могут быть в любой области M-файла. Они не являются исполняемыми инструкциями. Цель их размещения в тексте программы – пояснить смысл той или иной части программного кода. Все выражения в M-файле-функции, которые обычно производят вывод результатов, должны оканчиваться точкой с запятой с целью пресечения вывода результатов промежуточных вычислений.



Покажем, как используется файл-функция rad.m для вычисления длины радиус - вектора точки (2;3;4):

>> rad(2,3,4)

ans =

5.3852

Ответ 5,3852 будет возвращен и сохранен под именем ans независимо от того, заданы или нет x, y, z и d в вашей рабочей области. Переменные, которые используются в файл-функции, такие как x, y, z и d в файле rad.m, являются локальными переменными. Запуск M-файла-функции не задает эти переменные в рабочей области и не изменяет их параметры, если переменные с такими же именами в рабочей области были заданы ранее. Система MATLAB не запоминает значения этих переменных после того, как M-файл-функция будет выполнен, а область оперативной памяти, в которой они хранились, освобождается. Убедимся в этом, выполнив команду who:

>> who

Your variables are:

ans

M-файлы-функции могут иметь множество аргументов ввода и вывода. Ниже представлен пример файла с именем rad2.m с тремя входными и двумя выходными параметрами, вычисляющего длину d и квадрат длины d2 радиус - вектора точки трехмерного пространства (x; y; z):

function [d,d2]=rad2(x,y,z)

d2=x^2+y^2+z^2;

d=sqrt(d2);

Если вы введете rad2(2,3,4), то только первый аргумент вывода будет возвращен и сохранен под именем ans:

>> rad2(2,3,4)

ans =

5.3852

Чтобы увидеть оба результата вывода, надо присвоить эти результаты переменным, заключенным квадратные скобки:

>> [d,d2]=rad2(2,3,4)

d =

5.3852

d2 =

Введя d=rad2(2,3,4), вы можете присвоить первый аргумент вывода переменной d:

>> d=rad2(2,3,4)

d =

5.3852

При вводе d2=rad2(2,3,4) нельзя получить второй аргумент вывода, т. к. переменной d2 будет также присвоен первый результат:

>> d2=rad2(2,3,4)

d2 =

5.3852

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

function noout(a,b), function [v,u]=noin, function noarg().

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

Приведем пример файл-функции rad3 без входных параметров:

function [d,d2]=rad3

global x y z

d2=x^2+y^2+z^2;

d=sqrt(d2);

Вызов ее осуществляется следующим образом:

>> global x y z

>> x=2;y=3;z=4;

>> [m,n]=rad3

m =

5.3852

n =

Параметрами файл-функций могут быть не только числа или скалярные переменные, но и массивы требуемых размеров. Поэтому желательно создавать векторизованные версии М-файлов вместо операторов <^>, <*>, </> следует применять операторы <.^>, <.*>, <./>. Векторизация осуществляется командой vectorize (см. разд. 1.7).

Созданный M-файл можно сохранить не только в текущем, но и в любом другом каталоге. В этом случае перед запуском M-файла на выполнение нужно установить пути поиска, ведущие к нему. По умолчанию текущим является подкаталог work основного каталога MATLAB. Для того, чтобы увидеть его содержимое, в главном меню MATLAB выберите команду View => Current Directory (Вид=>Текущий каталог). В результате раскроется окно, в котором отобразится список файлов и вложенных папок активного в данный момент каталога.

Чтобы изменить текущий каталог, введите путь к новому каталогу в поле Current Directory либо выберите его в раскрывающемся списке этого поля. Или же щелкните на кнопке справа от от поля Current Directory, и отыщите нужную папку в раскрывшемся диалоговом окне Обзор папок.

Справочную информация по M-функциям можно получить, введя команду doc function.

 

Вопросы для самопроверки

1. Как вызвать редактор M-файлов?

2. Что такое сценарий?

3. Что такое файл-функция?

4. Какова структура M-файла, содержащего файл-функцию?

5. Какую роль играют строки комментариев, располагаемые сразу за заголовком файл-функции?

6. Как осуществляется передача информации из командного окна MATLAB в файл-функцию?

7. Что такое локальные, глобальные переменные?

8. Как получить справку по M-файлам?

 



<== предыдущая лекция | следующая лекция ==>
Файл-программы | Операторы отношения и логические операторы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.382 сек.