logo
matlab_final

3.1. Создание и выполнение скриптов в matlab

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

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

Для того чтобы создать скрипт и открыть его в редакторе MATLAB, нужно в главном меню выбрать пункт File - New - Script или нажать кнопку "New Script" на панели инструментов ( ). При этом откроется окно, показанное на рисунке 3.1.

Рис. 3.1.

Другой способ создания нового скрипта состоит в использовании команды edit в окне "Command Window. В этом случае можно создать файл с заданным именем, передавая имя скрипта как параметр:

>> edit myscript.m

Если файл myscript.m уже существует в текущей директории (текущая директория - это директория, в которой MATLAB ищет файлы, указанные только по имени без указания полного пути, текущая директория показана в окне "Current Folder"), то он будет открыт во встроенном редакторе, в противном случае MATLAB предложит создать файл с таким именем.

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

Скрипты представляют собой последовательности тех же самых команд, которые использовались выше (с той лишь разницей, что в скриптах не нужно набирать строку приглашения командного режима >>). Например, скрипт, созданный на основе одной из последовательностей команд предыдущего раздела, будет выглядеть следующим образом:

clear

% Верхний левый график

[x1, y1] = meshgrid (-2: 0.1: 2, -2: 0.1: 2);

f1 = x1 .^ 2 + y1 .^ 2;

subplot (2, 2, 1)

surf (x1, y1, f1)

% Верхний правый график

x2 = -10: 0.05: 10;

f2 = sinc (x2 / pi);

subplot (2, 2, 2)

plot (x2, f2)

grid on

% Нижний график

x3 = -10: 0.01: 10;

f3 = exp (-(x3 .* x3));

subplot (2, 1, 2)

plot (x3, f3)

Внешний вид редактора, в котором был набран этот текст, показан на рисунке 40.

Рис. 3.2.

Для того, чтобы запустить этот скрипт на выполнение, нужно выбрать пункт меню Debug - Run... (вместо многоточия будет указано имя файла скрипта), нажать одноименную кнопку на панели инструментов ( ), или нажить горячую клавишу F5. Дальнейшие примеры будут предполагать, что они запускаются в виде скрипта, поэтому символы приглашения командного режима (>>) будут отсутствовать, хотя те же самые команды можно последовательно набирать и в командном режиме.

Так как длинные команды плохо читаются, то рекомендуется их всегда разбивать на несколько строк. Обычно считается, что строка программы не должна превышать 80 символов (это число появилось еще во времена текстовых терминалов, когда на экране по горизонтали умещалось только такое количество символов). Поэтому в редакторе MATLAB даже проведена вертикальная линия на ширине 76 символов, за которую не желательно выходить.

Так как транслятор считает, что каждая команда заканчивается символом переноса строк (или конца файла), это накладывает ограничение на разбиение длинной команды на две строки. Для того чтобы сообщить транслятору, что команда будет продолжена на следующей строке, используется оператор "..." (три точки). Например, если нужно команду

[x1, y1] = meshgrid (-2: 0.1: 2, -2: 0.1: 2);

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

[x1, y1] = meshgrid (-2: 0.1: 2, ...

-2: 0.1: 2);

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

Yandex.RTB R-A-252273-3
Yandex.RTB R-A-252273-4