Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 03-04.doc
Скачиваний:
2
Добавлен:
19.09.2019
Размер:
123.39 Кб
Скачать

Глава 3 м-файлы

До сих пор все вычисления и операции в MATLAB мы выполняли в «режиме калькулятора»: набирали в командной строке очередную команду, нажимали клавишу <Enter> – система выполняла заданное действие и, при необходимости, выдавала результат этого действия. Для повторного выполнения команд или создания на их основе похожих команд, мы использовали клавиши <↑> и <↓>, а также окно Command History (История команд), из которого можно скопировать отдельные команды и даже наборы команд (см. раздел 1.7).

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

Более эффективным способом выполнения команд в системе MATLAB является применение M-файлов (текстовых файлов с расширением .m), содержащих набор инструкций на языке системы.

В системе MATLAB различают два типа M-файлов: файл-программы (Script M-Files) и файл-функции (Function M-Files). M-файлы являются примерами программ в системе MATLAB. Подробнее о программировании – в Главе 4.

Для написания М-файлов предназначен специальный редактор, служащий для создания, редактирования и отладки программ. Умение создавать собственные файл-функции и файл-программы необходимо как при программировании в MATLAB, так и при решении различных задач средствами MATLAB Например, поиска корней уравнений, интегрирования, оптимизации и др. Справочную информация по M-файлам можно получить, набрав в командной строке doc lang.

3.1 Файл-программы

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

В MATLAB имеется редактор M-файлов, который вызывается из меню File по команде New => M-file. На экране появляется окно редактора. Наберем в нем какие-либо команды, например, для нахождения длины d радиус–вектора точки (x;y;z) трехмерного пространства (см. рис. 3.1):

Рис.3.1

Заметим, что точка с запятой <;> предотвращает вывод в командное окно результатов действий отдельных команд при выполнении программы. Оператор 2 в сценарии mysum не завершен точкой с запятой, поэтому выводит результат d в командное окно.

Для запуска сценария или его части есть несколько способов. Первый, самый простой – выделить операторы при помощи мыши, удерживая левую кнопку, или при помощи клавиши <Shift> со стрелками <↑> и <↓> и нажать <F9>. Выделенные операторы выполняются последовательно, точно так же, как если бы они были набраны в командной строке. Очевидно, что работать в M-файле удобнее, чем в командной строке, поскольку можно сохранить программу, можно редактировать ее, используя обычные приемы редактирования, общие для Windows – приложений, в том числе с помощью мыши и клавиш <↑> и <↓>.

Для сохранения программы, набранной в окне редактора M-файлов, можно воспользоваться командой File => Save As (Сохранить как). В появившемся диалоговом окне Save fili as (Сохранить файл как) раскроется подкаталог work основного каталога MATLAB, который по умолчанию является текущим (его содержимое можно увидеть в окне Current Directory). В поле File name (Имя файла) введем имя файл-программы (например, myprog.m) вместо Untitled.m и щелкнем на кнопке Save, чтобы сохранить его. M-файлы не следует путать с MAT-файлами, в которых хранятся переменные из рабочего пространства системы MATLAB.

После того, как программа сохранена в M-файле, к примеру в myprog.m, для ее запуска можно использовать пункт Run меню Debug, либо набрать в командной строке имя M-файла (без расширения) и нажать <Enter>, то есть выполнить, как команду MATLAB. При таких способах запуска программы следует учесть важное обстоятельство – путь к каталогу с M-файлом должен быть известен MATLAB. Сделаем каталог с файлом myprog текущим.

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

Когда текущий каталог установлен, то все M-файлы, находящиеся в нем, могут быть запущены из командной строки, либо из редактора M-файлов.

Например, если ввести команды

>> x=2;

>> myprog

d =

5.3852

то сценарий myprog.m, текст которого содержится на рис 3.1, вычислит длину радиус–вектора точки (2;3;4).

Сценарий myprog.m обрабатывает как свои собственные переменные y, z, так и переменную x , определенную до вызова сценария в командном окне системы MATLAB и хранящуюся в ее рабочем пространстве. Это возможно потому, что переменные, определяемые в сценариях, и переменные, определяемые в командном окне, составляют единое рабочее пространство системы MATLAB. В свою очередь, все переменные, созданные во время работы сценария, остаются в рабочем просранстве MATLAB и после окончания его выполнения, т. е. являются глобальными. Можно убедится в этом, выполнив команду whos.

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