В этой книге предполагается, что MATLAB используется в среде операционной системы Windows 95 или Windows 98/Me/2000. Копии сеансов работы MATLAB даны именно для этих случаев. Однако пользователи, работающие с Windows NT4, также могут обращаться к материалам данной книги без каких-либо ограничений, поскольку отличия касаются лишь мелких деталей пользовательского интерфейса. Это справедливо, хотя в меньшей мере, и для пользователей систем MATLAB на иных платформах.
Рис. 2.8. Подготовка к запуску MATLAB
Рисунок 2.8 иллюстрирует подготовку к запуску системы MATLAB 6.0 из главного меню операционной системы Windows 98 со стандартным видом рабочего стола, подобным использованному в Windows 95. Для раскрытия главного меню активизируется кнопка Пуск (Start), расположенная внизу рабочего стола слева, или можно щелкнуть на значке с логотипом системы на рабочем столе Windows.
Далее мы не всегда будем повторять полное название системы – MATLAB 6.0 – и ограничимся сокращенным названием MATLAB.
Как запустить MATLAB Online.
После запуска MATLAB (см. рис. 2.8) на экране появляется основное окно системы MATLAB, показанное на рис. 2.9. Обычно это окно раскрыто не полностью и занимает часть рабочего стола. Вы можете раскрыть окно полностью, щелкнув на средней из трех кнопок, расположенных в конце титульной (верхней) строки окна.
Левая кнопка сворачивает окно в кнопку с именем приложения, помещаемую в панель задач Windows 95/98, а правая закрывает окно и прекращает работу с MATLAB. Система готова к проведению вычислений в командном режиме. При этом вы можете не обращать внимания на новации пользовательского интерфейса, привнесенного операционными системами Windows 95 и 98/Me/2000/NT4, в виде расширяемого окна и панели инструментов. Мы обсудим их роль позже. Тем не менее сразу бросается в глаза существенное изменение интерфейса у системы MATLAB 6.0 по сравнению с предшествующей версией MATLAB 5.3.1.
Рис. 2.9. Окно системы MATLAB после запуска и выполнения простых вычислений
Для уточнения версии системы следует вывести окно с информацией о системе (команда About MATLAB (О MATLAB) в меню Help (Помощь). Это окно представлено на рис. 2.10 в центре. Из него видно, что запущена версия 6.0 (R12) от 22 сентября 2000 г. Поскольку номер лицензии имеет конфиденциальный характер, вместо него на рисунке показан 0.
Полезно знать, что в начале запуска автоматически выполняется команда matlabrc, которая исполняет загрузочный файл matlabrc.m и файл startup.m, если таковой существует. Эти файлы выполняют начальную настройку терминала системы и задают ряд ее параметров. В частности, могут быть заданы пути доступа к другим файлам, необходимым для корректной работы системы MATLAB.
Таким образом, опытные пользователи могут выполнить настройку системы под свои запросы. Однако в большинстве случаев особой необходимости в этом нет. Поскольку указанные файлы имеют текстовый формат, их легко просмотреть с помощью какого-либо текстового редактора или с помощью команды type в командном режиме работы MATLAB.
MATLAB 03 Написание программ
Сеанс работы с MATLAB принято именовать сессией (session). Сессия, в сущности, является текущим документом, отражающим работу пользователя с системой MATLAB. В ней имеются строки ввода, вывода и сообщений об ошибках.
Входящие в сессию определения переменных и функций, расположенные в рабочей области памяти, но не саму сессию, можно записать на диск (файлы формата «.mat»), используя команду save (Сохранить). Команда load (Загрузить) позволяет считать с диска данные рабочей области. Фрагменты сессии можно оформить в виде дневника с помощью команды diary (Дневник). Позже мы обсудим эти команды подробно.
Чтобы упростить жизнь учёному, инженеру или студенту, служит окно редактора (Editor). Давайте откроем окно редактора через меню Desktop Editor.
В окне редактора можно создавать новые переменные, строить графики, писать программы (скрипты), создавать компоненты для обмена с другими средами, создавать приложения с пользовательским интерфейсом (GUI), а также редактировать имеющиеся.
Нас в данный момент интересует написание программы, содержащей функции для повторного использования в будущем. Поэтому идём в меню File редактора и выбираем New M-File.
М-файлами в среде МАТЛАБ называются файлы, содержащие текст программ (скрипты) или определённые пользователем функции.
Давайте напишем в редакторе простую функцию draw_plot:
function draw_plot(x) % Задаём первую функцию: y = log(x); % Строим первый график: subplot(1, 2, 1), plot(x, y); % Задаём вторую функцию: y = sqrt(x); % Строим второй график: subplot(1, 2, 2), plot(x, y);
Пользовательские функции и файл-скрипты
Любую последовательность команд в MATLAB можно оформить в виде m-файла.
Файл-скрипт не имеет входных и выходных аргументов.
Файл-скрипт работает с данными из рабочей области.
Все переменные, объявленные в файл-скрипте, являются глобальными.
% Файл-скрипт my_script.m % Комментарий, % который появляется при вызове команды % help my_script x = 0:0.1:0.1; y = sin(x); plot(x,y);
запустить скрипт из редактора, нажав F5 (MS Windows)
набрать в консоли (Command window) имя скрипта и нажать Enter.
Во втором случае файл-скрипт должен находится в текущем (рабочем) каталоге
или в списке каталогов, которые просматривает MATLAB. Этот список можно изменить нажав кнопку Set Path на ленте Home
Файл-скрипт можно для удобства разделить на секции при помощи удвоенного знака процента %%. Код в каждой секции можно выполнить отдельно от остального кода, нажав F9 (MS Windows), когда курсор находится в нужной секции.
>> f1 = inline(‘x1^2+x2^2’, ‘x1’, ‘x2’); >> f1(4,2)
т.е. вызывается функция inline, в которую первым аргументов передается строка — выражение от аргументов функции, которые передаются следующим аргументами также в виде строк. В выражениях inline-функций не могут использоваться имена переменных из рабочей среды, а только переменные – аргументы, объявленные в функции inline.
Вызывается объявленная inline, как и любая другая функция, например, для объявленной выше функции двух переменных:
>> f1(4,2)
Анонимные функции
Более практичны в сравнении с inline-функциями анонимные функции, которые могут содержать имена переменных из рабочей среды. Анонимные функции также можно использовать для объявления коротких однострочных функций, создание для которых отдельных m-файлов нецелесообразно.
Анонимные функции удобно использовать внутри выражений, например для построения графика функции (x^2 + sin(x)) на интервале от 0 до 5 можно написать
но проще использовать анонимную функцию прямо в функции fplot
Файл-функция
Файл-функция содержит определение одной или нескольких функций.
По-умолчанию все переменные, объявленные внутри файл-функции, являются локальными.
Файл-функция является самостоятельным программным модулем, который связан с другими модулями и головной программой через входные и выходные параметры.
Создание файл-функции: File -> New -> Function
% Комментарий к функции % function [res1, res2] my_function(x1, x2) res1 = x1^2 + x2^2; res2 = x1 + x2;
По умолчанию все переменные внутри функции являются локальными. Для того, чтобы несколько функций использовали одну переменную, её необходимо объявить глобальной.
% Комментарий к функции % function [res1, res2] my_function(x1, x2) global g; res1 = g + x1^2 + x2^2; res2 = x1 + x2;
Имя файла и имя объявленной в нем функции должны совпадать. Как и для файл-скриптов каталог, в котором содержатся вызываемые функции, должен быть текущим (рабочим) или добавлен в список просматриваемых MATLAB.
Функция прекращает работу после выполнения последнего оператора. Принудительно завершить функцию можно директивой return.
Файл-функция вместе с определением основной функции может содержать определения вспомогательных функций, доступных к вызову только из основной функции. Переменные, используемые во внутренних функциях локальные.
function f = myfun(x) f1 = infun(x); f = f1 + cos(x); % Внутренняя функция function res = infun(x) a = 3; res = sin(x*3);