Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Glava_2a70_2014.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

2.29.2. Типы m-файлов.

В системе MATLAB существуют два типа M-файлов: файл-программы (Script M-Files, скрипты или сценарии) и файл-функции (Function M-Files).

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

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

Основное отличие между файл-программами и файл-функциями состоит в работе с переменными. В частности, файл-программы работают только с переменными рабочего пространства и не имеют локальных переменных, т.е. все переменные, определенные в файл-программе, после ее выполнения становятся доступными в рабочем пространстве и могут быть использованы в других файл-программах или командах, вводимых в командной строке (аналогично в файл-программе могут быть использованы все переменные, уже определенные в командном окне, т.е. файл-программа работает с данными рабочей области). Таким образом, рабочее пространство становится общим для всех файл-программ, используемых в текущем сеансе работы с MATLAB. Достоинством такого подхода является достигаемая в результате полная интеграция файл-программы с рабочим пространством, что делает фай-программы средством автоматизации интерактивного режима работы пользователя с системой MATLAB. Указанная интеграция является при этом и недостатком – так, например, если предполагается оформить в виде файл-программы отдельный фрагмент решения некоторой задачи, его следует всегда вызывать в одной и той же программной обстановке (что, очевидно, выполняется далеко не всегда). Кроме того, файл-программе в момент ее вызова нельзя передать в виде параметров дополнительную информацию, не содержащуюся в рабочем пространстве. При выполнении нескольких файл-программ также исключительно важно следить за тем, чтобы в них были согласованы общие переменные.

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

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

Рассмотрим далее на простых примерах некоторые особенности написания файл-программ и файл-функций на языке MATLAB.

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