Общие свойства и возможности рабочего стола MATLAB 5
Получение справок (Getting Help)7
Рабочее пространство системы MATLAB13
Просмотр и редактирование массивов данных при помощи 13
редактораArray Editor16
Пути доступа системы MATLAB18
Операции с файлами 20
Дуальность (двойственность) команд и функций 23
Действия над матрицами в системе MATLAB24
Двоеточие (Colon) 28
Решение систем линейных уравнений 30
Степени матриц и матричные экспоненты 35
Собственные значения и собственные векторы 37
Полиномы и интерполяция 41
Анализ данных и статистика 50
Многомерные Массивы 65
Создание Многомерных Массивов 66
Организация и хранение данных 74
Массивы структур 75
Массивы ячеек 86
Програмированиена MATLAB-е97
Типы данных108
Команды управления данными (Flow Control) 114
Приложение 1. Тематические направления системы MATLAB121
Приложение 2. Команды общего назначения
(General purpose commands)123
Приложение 3. Операторы и специальные символы 126
Приложение 4. Элементарные математические функции
(Elementary math functions).127
Приложение 5. Элементарные матрицы и операции над ними
(Elementary matrices and matrix manipulation)
Приложение 6. - Матричные функции и линейная алгебра
(Matrix functions - numerical linear algebra)129
Приложение 7.Полиномыиинтерполяция
(Interpolation and polynomials)132
Приложение 8. Анализ данных и преобразование Фурье
(Data analysis and Fourier transforms) 133
Приложение 9. Функции обработки символьных строк
(Character strings)135
Справочник по базовым функциям
системы MATLAB137
Система математических расчетов MATLAB
Система MATLAB(сокращение от MATrix LABoratory - МАТричная Лаборатория) разработана фирмой The MathWorks, Inc. (США, г.Нейтик, шт. Массачусетс) и является интерактивной системой для выполнения инженерных и научных расчетов, которая ориентирована на работу с массивами данных. Система использует математический сопроцессор и допускает обращения к программам, написанным на языках Fortran, C и C++.
Наиболее известные области применения системы MATLAB:
· анализ данных, исследование и визуализация результатов;
· научная и инженерная графика;
· разработка приложений, включая графический интерфейс
пользователя.
MATLAB - это интерактивная система, основным объектом которой является массив, для которого не требуется указывать размерность явно. Это позволяет решать многие вычислительные задачи, связанные с векторно-матричными формулировками, существенно сокращая время, необходимое для программирования на скалярных языках типа Fortran или C. Будучи ориентированной на работу с реальными данными, эта система выполняет все вычисления в арифметике с плавающей точкой, в отличие от систем компьютерной алгебры REDUCE, MACSYMA, DERIVE, Maple, Mathematica, Theorist, где преобладает целочисленное представление и символьная обработка данных.
Система MATLAB - это одновременно и операционная среда и язык программирования. Одна из наиболее сильных сторон системы состоит в том, что на языке MATLAB могут быть написаны программы для многократного использования. Пользователь может сам написать специализированные функции и программы, которые оформляются в виде М-файлов. По мере увеличения количества созданных программ возникают проблемы их классификации и тогда можно попытаться собрать родственные функции в специальные папки. Это приводит к концепции пакетов прикладных программ (Application Toolboxes или просто Toolboxes), которые представляют собой коллекции М-файлов для решения определенной задачи или проблемы.
В действительности Toolboxes - это нечто большое, чем просто набор полезных функ-ций; часто это результат работы многих исследователей по всему миру, которые объеди- няются в группы по самым различным интересам, начиная от нейтронных сетей, дифференциальных уравнений в частных производных, сплайн-аппроксимации, статистики и размытых множеств до проектирования робастных систем управления, теории сигналов, идентификации, а также моделирования линейных и нелинейных динамических систем с помощью исключительно эффективного пакета SIMULINK. Именно поэтому пакеты прикладных программ MATLAB Application Toolboxes, входящие в состав семейства продуктов MATLAB, позволяют находиться на уровне самых современных мировых достижений в разных областях науки и техники.
Вызов и выход из MATLAB
ВызовMATLAB-а. Длявызовасистемы MATLAB требуется двойное нажатие на иконкув рабочем столе Windows. При инсталляции MATLAB-а стартовой директорией по умол-чанию является $matlabroot\work, где$matlabroot есть директория, где установлены файл-ы системы MATLAB.
При вызове, система MATLAB автоматически выполняет главный М-файл (master M-file) matlabrc.m., и файл startup.m (есди последний существует). Файл matlabrc.m, которые расположенв директорииlocal, зарезервирован фирмой The MathWorks, а в многопользова-тельских системах может быть использован также системным менеджером. Файл startup.m предназначен для задания ряда стартовых опций (возможностей) по усмотрению пользователя. Вы можете изменить исходные пути доступа (см. далее), ввести заранее определенные переменные в рабочее пространство, изменить текущую директорию и т.д. Стартовый файл startup.m следует ввести в директорию $matlabroot\toolbox\local (более подробно с данным вопросом можно ознакомиться в справочных пособиях по MATLAB-у).
Выход из MATLAB-а.Для окончания сеанса работы с MATLAB следует выбрать опцию Exit MATLAB (Выход из MATLAB) в меню File на рабочем столе MATLAB-а, или напеча-тать quit (Выход) в командном окне Command Window.
При выходе, MATLAB выполняет специальный файл finish.m, относящийся к типу сценари-ев (см. далее) , если только данный файл существует в текущей директории или где-либо на пути доступа системы MATLAB. Файл finish.m создается пользователем. Он должен содер-жать функции или операции, которые пользователь желает автоматически выполнить при выходе из системы MATLAB, например, такие как сохранение рабочего пространства или вызов диалогового окна, запрашивающего подтверждения выхода. В указанной выше дирек-тории $matlabroot\toolbox\local имеются два файла, которые пользователь может использо-вать в качества образца при создании своего файла finish.m:
*finishsav.m - Включает функцию save, что приводит к автоматическому запоминанию рабо-чего пространства при выходе из MATLAB-а.
*finishdlg.m - Выводит на экран подтверждающее диалоговое окно, которое позволяет анну-лировать выход.
Рабочий стол (desktop) системы MATLAB
Рабочий стол системы MATLAB содержит следующие инструментальные окна, часть из которых не появляется при начальном запуске:
*Command Window (Командное Окно) - Выполняет все функции и команды системы
MATLAB.
* Command History (История Команд) - Просмотр функций, введенных ранее в
Command Window, их копирование и выполнение.
* Launch Pad (Окно Запуска) - Запускает все инструменты и обеспечивает доступ ко
всем пакетам системы MATLAB .
* Current Directory Browser (Окно Просмотра Текущего Каталога) - Просмотр файлов
MATLAB, а также сопутствующих файлов, а также выполнение таких операций
над файлами, как поиск и открытие файлов.
* Help Browser (Окно Просмотра Помощи) - Поиск и просмотр документации по всем
функциям и средствам системы MATLAB.
* Workspace Browser (Окно Просмотра Рабочего Пространства) - Просмотр и изменение
содержания рабочего пространства (workspace) системы MATLAB.
* Array Editor (Редактор Массивов Данных) - Просмотр содержимого массивов данных,
записанных в виде таблицы и редактирование данных.
* Editor/Debugger (Редактор/Отладчик) - Для создания, редактирования и отладки
М-файлов, т.е. файлов, содержащих функции системы MATLAB.
Общий вид рабочего окна MATLAB представлен ниже (рис.1). Каждое из перечисленных окон может быть выведено из конфигурации рабочего стола нажатием кнопки со стрелкой в верхнем правом углу окна (см. рис. 1). Обратная операция, то есть ввод в общую конфигурацию, осуществляется выбором опции Dock в меню View сответствующего окна. Можно также изменить конфигурацию рабочего стола путем перемещения любого откры-того окна в новое положение. Для этого нужно просто нажать левой клавишей мыши на выбранное название окна (Title Bar) и «перетащить» его в желаемое положение.
Для восстановления стандартной конфигурации рабочего стола MATLAB необходимо выбрать опцию Default (По Умолчанию) вподменю Desktop Layout (План Рабочего Стола) в меню View (Вид) любого открытого окна системы. Все окна MATLAB содержат также контекстное меню (context menu), которое вызывается нажатием правой кнопки мыши и содержит наиболее часто применяемые опции (функции), связанные с данным окном.
Таким образом. в системе MATLAB имеется возможность изменения вида рабочего стола путем открытия, закрытия, перемещения или изменения размеров каждого из индивидуаль-ных окон.
Просмотр продуктов Просмотр или Кнопка для
и демонстрационных Вызов изменение текущей вывода окна из состава
роликов помощи Ввод функций директории рабочего стола Закрытие окна
Просмотр и вызов Переход к рабочему Нажатием левой клавиши мыши и перемещением
введенных ранее команд пространству (Workspace) можно изменять границы окон
и к окну текущего каталога
Рис. 1. Общий вид рабочего стола системы MATLAB
Общие свойства и возможности рабочего стола MATLAB
Ниже приводится вид инструментальной панели системы MATLAB и указано назначение основных кнопок.
Создать новый
М-файл Копировать Создать новую модельSimulink
Просмотр или изменение
Открыть файл Undo текущего каталогаю
Выбор использованных ранее
Вырезать Вставить Redo Вызов Помощи (Help) каталогов
Всплывающее окно указателя, Просмотр с целью изменения
описывающее кнопку текущего каталога
Undo - отмена последнего действия; Redo - повторение последнего действия.
Рис. 2. Инструментальная линейка (Toolbar) рабочего стола
CommandWindow (Командноеокно)
1. Выполнение функций и ввод переменных
Приглашение к вводу команды (>>) в Command Window означает, что MATLAB готов к приему. При появлении приглашения >> вы можете ввести переменную или выполнить ко-манду. Например, для создания 3х3 матрицы А следует напечатать
A = [1 2 3; 4 5 6; 7 8 10]
При нажатии клавиш Enter (или Return)после набора строки, MATLAB реагирует выводом следующей записи
A =
1 2 3
4 5 6
7 8 10.
При этом переменная (матрица) запоминается в рабочем пространстве (workspace) MATLAB.
Внимание! Система MATLAB чувствительна к выбору регистра, т.е. MATLAB разли-чает переменные а и А ! При написании команды (функции) также не следует использо- вать заглавные буквы !
Для выполнения функций следует напечатать функцию включая все аргументы и нажать Enter. При этом MATLAB отобразит в командном окне результат. Например, напечатав
magic(2)
получим
ans =
1 3
4 2.
Если вы хотите ввести несколько командных строк без их немедленного выполнения, вос-пользуйтесь комбинациями Shift+Enterпосле ввода каждой строки. Последующее нажатие Enter приведет к выполнению всех введенных строк.
Приглашение K>> в командном окне означает, что MATLAB находится в режиме отладки (debug mode). Данный режим будет подробно рассмотрен в дальнейшем.
2. Вычисление выделенных функций и выражений (Evaluating a Selection)
Для вычисления выделенных выражений в командном окне следует нажать правую кнопку мыши и выбрать в контекстном меню опцию Evaluate Selection. Данная операция невозмо-жна если система MATLAB занята, например, выполняет М-файл.
3. Открытиевыделения (Opening a Selection)
Для открытия М-файла некоторой функции следует выделить эту функцию в командном окне и выбрать в контекстном меню опцию Open Selection. Это приведет к открытию данно- го файла в окне Редактора/Отладчика (Editor/Debugger).
Внимание! Вы можете одновременно выполнять на MATLAB-е только одну функцию. Если MATLAB выполняет некоторую команду, то все последующие введенные команды запоминаются и выполняются только при окончании предыдущей !
4. Ввод нескольких функций в одну строку
Для ввода нескольких функций в одну командную строку, их нужно разделить точкой с запятой ( ; ). Например, запись трех следующих функций в одной командной строке
format short; x = (1:10)'; logs = [x log10(x)]
и нажатие Enter приведет к выполнению этих функций слева направо и к распечатке таблицы десятичных логарифмов в пределах от 1 до 10.
5. Ввод длинных функций
Если запись не помещается на одной строке, следует использовать три точки, (...) для обозначения того, что запись будет продолжена на следующей строке; нажать Enter для перехода к следующей строке, и затем продолжить ввод записи. Например,
s = 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + 1/7 ...
- 1/8 + 1/9 - 1/10 + 1/11 - 1/12;
Для записей с одинарными кавычками, такими как строки символов, кавычки следует ста-вить на каждой строке. Например, вводя следующую длинную строку
headers = ['Author Last Name, Author First Name, ' ...
'Author Middle Initial']
получим
headers =
Author Last Name, Author First Name, Author Middle Initial
Максимальное количество символов в одной строке равно 4096.
6. Окраска и выделение синтаксиса
Некоторые записи появляются в различных цветах с целью облегчить поиск элементов, таких, например, как парных сочетаний if/else. Имеются следующие основные варианты:
· При записи строки с начальной кавычкой, она окрашена в лиловый цвет. Когда вы закрываете кавычку, строка становится коричнево-красной.
· При написании ключевых слов, таких как зарезервированных для программирования (например, for, else, while и т.д.), а также троеточия (...), они окрашиваются в синий цвет. Слова, записанные между зарезервированными приобретают структурирован-ный вид, т.е. имеют отступы, облегчающие чтение текста.
· Двойное нажатие на начальную или конечную скобку (например, обычную, квадрат-ную [ ], или фигурную { }) приводит к селекции (окрашиванию) всех символов между данной скобкой и ее парой. При введении конечной скобки происходит кратковремен-ное высвечивание соответствующей начальной.
· При напечатании символа процента (%), который в системе MATLAB является приз-наком начала строки комментария (эти строки не выполняются), соответствующая строка окрашивается в зеленый цвет.
· При вводе команды обращения к операционной системе, которые начинаются с воск- лицательного знака (!), строка окрашивается в золотой цвет.
· Сообщения об ошибках имеют красный цвет.
Можно изменить приведенную стандартную окраску, введя соответствующие изменения в опции Preferences в меню рабочего стола File. Там же предусмотрена возможность выбора шрифта и размера символов.
7. Редактирование командной строки
Ниже приводятся некоторые свойства системы MATLAB, дающие экономию времени при вводе:
Свойства буффера обмена. При работе в командном окне целесообразно использовать опции Cut (Вырезать), Copy (Копировать), Paste (Вставить), Undo (Отмена последнего действия), Redo (Повторение последнего действия) из меню Edit (Редактирование), или соответствующие кнопки инструментальной панели (см. рис. 2). Некоторые из этих опций доступны также из контекстного меню командного окна.
Свойства клавиши Tab (Табуляция).MATLAB автоматически завершает имя функции, переменной, названия файла или свойства дескриптора графического объекта (handle graphics property), если вы наберете соответствующие первые несколько букв и нажмете кла-вишу Tab. Если это однозначно определяемое имя, то оно будет автоматически завершено. Если же данные буквы входят в название нескольких функций, то повторное нажатие клавиши Tab вызовет списоквсех возможных функций. Например, напечатайте cos и наж- мите Tab. Система MATLAB не отреагирует, что означает наличие многих имен начинаю-щихся с cos. При повторном нажатии Tab MATLAB отобразит список всех имеющихся в на- личии подходящих функций:
cos cosh costfun
cos_tr cosint costs_march.
Вызов предыдущих строк. Используйте клавиши стрелок, табуляции и управления на кла-виатуре для повторного вызова, редактирования и повторного использования функций, кото-рые вы ввели ранее. Допустим, вы ввели по ошибке
rho = (1+ sqt(5))/2
При нажатии Enter MATLAB ответит:
Undefined function or variable 'sqt'.
(Неизвестная функция или переменная sqt),
поскольку вы неправильно ввели функцию sqrt (квадратный корень). Вместо того чтобы перепечатывать всю строку, можно нажать клавишу . Предыдущая строка будет повторно отображена. Используя клавишу можно привести курсор в требуемое положение и доба-вить недостающую букву r. Повторные нажатия клавиши вызовут раннее введенные стро-ки. Все вводимые вами функции запоминаются в буфере обмена. При этом можно воспользо- ваться свойством «интеллектуального повторного вызова» (smart recall)для повторного вы-зова ранее введенных функций, которое заключается в том, что достаточно набрать только первые несколько символов из названия требуемой функции. Например, напечатав буквы plo и нажав клавишу мы вызовем последнюю функцию, которая начинается с plo. Данное свойство чувствительно к выбору регистра.
Ниже приводится полный список клавиш, которые можно использовать в командном окне
Клавиши
Клавиши управления
Результат операции
Ctrl+p
Вызов предыдущей строки
Ctrl+n
Вызов следующей строки.
Ctrl+b
Переход на один символ назад.
Ctrl+f
Переход на один символ вперед.
Ctrl+
Ctrl+r
Переход на одно слово направо.
Ctrl+
Ctrl+l
Переход на одно слово влево .
Home
Ctrl+a
Переход к началу строки.
End
Ctrl+e
Переход к концу строки.
Esc
Ctrl+u
Очистить строку.
Delete
Ctrl+d
Удалить символ после курсора.
Backspace
Ctrl+h
Удалить символ перед курсором.
Ctrl+k
Удалить от курсора до конца строки.
Shift+home
Выделить до начала строки.
Shift+end
Выделить до конца строки.
8. Очистка командного окна
Для очистки командного окна следует выбрать опцию Clear Command Window из меню Edit. Эта операция не приводит к очистке рабочего пространства, а только удаляет все запи-си с экрана монитора. В дальнейшем вы можете использовать все свойства клавиш для пов-торного вызова введенных ранее функций.
Эквивалентная функция ! Для очистки командного окна можно воспользоваться функцией clc . Подобно clc, функция home переносит приглашение к вводу системы MATLAB (>>) к верхнему левому углу командного окна, но при этом содержимое всего окна не очищается и может быть прочитано стандарными приемами просмотра.
9. Подавление вывода результатов на экран
Если вы заканчиваете строку точкой с запятой (; ), то при нажатии Enter MATLAB выпол-няет задачу (программу), но не выводит результаты на экран монитора. Это может быть осо-бенно полезным при генерации больших матриц. Например, при вводе
A = magic(100);
и нажатии Enter MATLAB создает в рабочем пространстве матрицу A размера 100х100, но не выводит ее на экран.
10. Разбиение экранного вывода на страницы
Если выводимые результаты очень длинные и не помещаются в пределах экрана, то вывод может быть слишком быстрым для восприятия (то есть строки будут бежать очень быстро). В таких случаях можно воспользоваться функцией more . По умолчанию функция more бло-кирована (выключена). Если вы напечатаете more on, то MATLAB осуществляет вывод на экран постранично (по размеру экрана). После просмотра первой страницы следует нажать на одну из следующих клавиш
Клавиша
Действие
Enter
Переход к следующей строке
Пробел
Переход к следующей странице
q
Остановка вывода на экран
Постраничный вывод можно блокировать вводом функции more off.
11. Выбор формата и интервала между строками для числовых данных
По умолчанию, числовое данные в командном окне представляются как пятизначные чис-ла с фиксированной запятой. Воспользовавшись опцией Preferences в меню File можно изменить формат вывода этих данных. При этом формат вывода действует только на экран-ное представление чисел, а не на саму процедуру вычислений или запоминания данных в MATLAB-е.
Эквивалентная функция ! Для выбора формата выводимых на экран числовых данных можно воспользоваться функцией format. Данная функция имеет силу только в процессе текущего сеанса работы, то есть при выходе из MATLAB-а ее действие аннулируется и вос-станавливается стандартное представление данных.
Примеры форматов данных. Ниже даны несколько примеров различных форматов двумер-ного вектора
x = [4/3 1.2345e-6]
формат short e
1.3333e+000 1.2345e-006
формат short
1.3333 0.0000
формат +
++
Полное описание допустимых форматов дается в справках (Help) по данной функции. Допол-нительные возможности контроля вывода дают функции sprintf и fprintf .
Выбор интервала между строками. Воспользовавшись опцией Preferences в меню File мо-жно также контролировать промежуток между строками. Команда format compact подавля-ет пустые строки, что дает возможность обозрения большего количества информации в ко- мандном окне. Для возврата к пустым строкам, которые облегчают чтение и восприятие ин-формации на экране, нужно воспользоваться командой format loose.
12. Распечатка содержания командного окна
Для распечатки содержания всего командного окна следует выбрать Print из меню File. Для распечатки только части текстанужно сперва выделить эту часть, и затем выбрать Print Selection в том же меню File.
13. Выполнение программ
Выполнение М-файлов. Для выполнения М-файлов, т.е. файлов которые содержат про-граммы на языке MATLAB, следует воспользоваться процедурой, совершенно аналогичной процедуре выполнения любой другой стандартной функции MATLAB-а, т.е. необходимо напечатать имя М-файла в командном окне и нажать Enter. Для вывода на экран каждой функции в М-файле по мере ее исполнения можно использовать команду echo, т.е. при вводе этой команды MATLAB будет последовательно выводить на экран каждую функцию в ис-полняемом М-файле.
Прерывание выполнения программы. Вы можете прервать выполнение программы путем нажатия Ctrl+c или Ctrl+Break в любое время.
Выполнение внешних программ. Восклицательный знак ! означает выход из оболочки MATLAB-а и передачу оставшейся части командной строки операционной системе. Данное свойство может быть полезным для вызова утилит или других программ без выхода из систе-мы MATLAB. После выполнения утилит, операционная система возвращает управление сис- теме MATLAB.
Открытие М-файла в окне Редактора/Отладчика. Для открытия М-файла следует выде-лить имя файла или функции в командном окне и затем, вызвав контекстное меню нажатием правой кнопки мыши, выбрать опцию Open Selection . Соответствующий М-файл будет открыт в окне Редактора/Отладчика (Editor/Debugger).
Анализ ошибок. Если при выполнении М-файла появляется сообщение об ошибке, то нужно подвести курсор к данному сообщению и нажать клавишу Enter. Произойдет открытие «нехорошего» M-файла в окне Редактора (Editor), причем файл будет «прокручен» до стро-ки, содержащей ошибку.
Сохранение сеанса работы. Для сохранения в памяти сеанса работы в системе MATLAB предусмотрена специальная функция diary (Дневник). Эта команда создает копию вашего сеанса работы в специальном файле на диске, включая все команды ввода и отклики системы MATLAB, но исключая графики. Вы можете затем просматривать и редактировать получен-ный текстовой файл используя любой текстовой редактор. Например, для создания на вашем диске файла, названного допустим sept23 («23 сентября»), который содержал бы все введен-ные вами в этот день функции и отклики системы MATLAB, следует ввестив командное окно функцию diary('sept23.out'). Для прекращения записи сеанса вводится : diary('off')
Примечание. В окне Command History (История Команд) содержится запись всех функций, выполненных в текущем и предыдущий сеансах.
Получение справок (Getting Help)
Система MATLAB обеспечивает исключительно широкие возможности для получения справок по всем командам и функциям. Однако, к сожалению, все это доступно только на ан-глийском языке и поэтому их использование может вызвать определенные затруднения у не-подготовленного потребителя. Среди важных и полезных команд, которые обеспечивают быстрый доступ к справкам можно выделить три: help, helpwin и lookfor.
1. HELP. Оперативная справка, отображающая текст в командном окне.
Команда help, сама по себе, выводит на экран (в командную строку) все тематические направления системы MATLAB. Каждое тематическое направление соответствует имени определенного каталога (директории) в MATLAB-е (см. Приложение 1).
Команда help(`topic') или help topic, где topic есть определенная директория (например, matlab\polyfun), выводит список всех функций в данном каталоге.
Команда help fun, где fun - имя функции, выводит на экран справку по данной функции, как она записана в соответствующем М-файле.
2. HELPWIN. Обеспечивает те же функции, что и help, но справка выводится в Окно Просмотра Помощи (Help Browser) (см. рис. 1).
3. LOOKFOR. Осуществляет поиск в первой строке комментариев по всем М-файлам по заданному ключевому слову. Так, например, lookfor XYZ осуществляет поиск слова XYZ в первой строке текста справки (HELP text) во всех М-файлах на так называемом пути доступа MATLAB (MATLABPATH). Для всех файлов где встречается это слово, команда lookfor выводит на экран названия файлов и первые строки комментариев.
Рабочее пространство системы MATLAB
Рабочее пространство (workspace) MATLAB-а состоит из множества переменных (назы-ваемых массивами (array), созданных во время сеанса работы системы MATLAB и запом-ненных в памяти. Можно добавлять новые переменные в рабочее пространство путем ис-пользования функций, выполняющих М-файлы, загрузкой запомненных ранее рабочих про-странств, или же путем непосредственного ввода переменных. Так, например, если вы напе-чатаете в командном окне:
t = 0 : pi/4 : 2*pi; y = sin(t); z = 5;
то рабочее пространство будет содержать две переменные y и t, каждая из которых имеет девять значений, и одну скалярную переменную z.
.
Окно Просмотра Рабочего Пространства (Workspace Browser )
Для выполнения операций просмотра и изменения содержимого рабочего пространства удобно использовать Окно Просмотра Рабочего Пространства (ОПРП), хотя многие исполь-зуемые им функции также доступны и из командной строки, путем применения соответ-ствующих команд. Для открытия ОПРП следует проделать одно из следующих действий:
· Из меню View рабочего стола MATLAB выбрать Workspace.
* В Окне Запуска (Launch Pad) нажать дважды на Workspace.
* Ввести команду workspace из командной строки MATLAB-а.
При этом получаем следующее окно (для некоторого конкретного набора переменных):
Рис. 3. Общий вид Окна Просмотра Рабочего Пространства
Просмотр текущего рабочего пространства. ОПРП показывает имя каждой переменной, размерность ее массива, размер в байтах и ее класс. Иконка в поле Name перед именем каж-дой переменной указывает на ее класс (классы переменных будут рассмотрены позднее).
Эквивалентные функции ! Команда who выводит в командное окно список всех перемен-ных текущего рабочего пространства. Команда whos добавляет к списку переменных также информацию об их размерах и классе. Например, при вводе who система MATLAB отвечает:
Your variables are (вашими переменными являются):
A M S v
а при вводе whos имеем:
Name Size Bytes Class
A 4x4 128 double array
M 8x1 2368 cell array
S 1x1 398 struct array
v 5x9 90 char array
Grand total is 286 elements using 2984 bytes
где в последней строке указано общее число элементов и количество используемых байтов, и присутствуют следующие классы : double array - массив чисел удвоенной точности, cell array - массив ячеек, struct array - массив структур, char array - массив символов.
Сохранение текущего рабочего пространства. Рабочее пространство не сохраняется между отдельными сеансами работы системы MATLAB. Когда вы выходите из MATLAB-а, его рабочее пространство очищается. Вы можете сохранить все или часть переменных текущего рабочего пространства в так называемых MAT-файлах (MAT-file), которые являются специ-альными бинарными (двоичными) файлами данных. В дальнейшем вы можете загрузить запомненные MAT-файлы, как в течении того же сеанса, так и в последующих сеансах, для повторного использования запомненных переменных.
Сохранение всех переменных. Для сохранения всех переменных рабочего простанства с ис-пользованием ОПРП следует:
1. Из меню File или контекстного меню выбрать Save Workspace As, или щелкнуть мышью по кнопке инструментальной линейки ОПРП. Откроется диалоговое окно Save.
2. Задать местоположение и имя файла (File name). MATLAB автоматически добавит расширение .mat .
3. ЩелкнутьSave.
Переменные рабочего простанства при этом запомнятся в MAT-файле с выбранным вами именем.
Сохранение части переменных. Для этого надо:
1. Выбрать переменную в ОПРП. Для выбора нескольких переменных следует использо-вать клавиши Shift или Ctrl.
1. Вызватьщелчком правой кнопки контекстное меню и выбрать Save Selection As. Дальнейшие действия описаны выше.
Эквивалентные функции ! Для сохранения переменных рабочего пространства можно ис-пользовать команду save с указанием имени файла куда вы хотите запомнить данные. Напри-мер, команда save('june10') запоминает все переменные рабочего пространства в бинарном файле june10.mat. Если вы не задаете имя файла, рабочее простанство запоминается в специ- альном файле под названием matlab.mat в текущей рабочей директории. Вы можете задать какие переменные сохранять, а также формат запоминания данных, например ascii. Так, ко-манда save 'june10' XY сохраняет в названном файле только переменные XY .
Загрузка запомненного рабочего пространства. Для загрузки предварительно запомненно-нго рабочего пространства следует:
1. Щелкнуть на кнопку загрузки данных на инструментальной линейке ОПРП, или щел-кнуть правой кнопкой на ОПРП и выбрать в контекстном меню опцию Import Data. Откро-ется диалоговое окно Open (Открыть).
2. Выбрать MAT-файл, который вы хотите загрузить и щелкнуть Open. Переменные и их значения, запомненные ранее в данном MAT-файле, будут загружены в текущее рабочее пространство системы MATLAB.
Эквивалентные функции ! Функция load предназначена для загрузки запомненного рабо-чего пространства. Например, команда load('june10') загружает в рабочее пространство все переменные из файла june10.mat.
Примечание. Если в сохраненном MAT-файле june10 содержатся переменные обозначен-ные A, B, и C, то загрузка june10 помещает эти переменные в рабочее пространство. Если переменные с этими именами уже существуют в рабочем пространстве, то они заменяются новыми переменными из june10.
Очистка переменных рабочего пространства. С помощью ОПРП вы можете удалить лю-бые переменные из рабочего пространства. Для этого нужно:
1. Выбрать переменную в ОПРП (или несколько перменных с использованием клавиш Shift или Ctrl). Для выбора всех переменых нужно выбрать опцию SelectAllиз меню Edit или контекстного меню.
2. Выполнить любое из перечисленных действий:
- Нажать клавишу Delete.
- Выбрать опцию Delete из меню Edit.
- Щелкнуть по кнопке на инструментальной панели ОПРП.
- Выбрать опцию Delete Selection из контекстного меню.
3. Если появиться диалоговое окно подтверждения, щелкнуть Yes.
Для удаления сразу всех переменных нужно выбрать опцию ClearWorkspaceиз меню Edit или контекстного меню ОПРП.
Эквивалентная функция ! Функция clear выполняет те же функции. Например, команда
clear A M
удаляет переменные A и M из рабочего пространства, а команда clear без обозначения аргу-ментов удаляет все переменные. Наконец, команда clear all удаляет все переменные и функ- ции, т.е. полностью очищает рабочее пространство системы MATLAB
Просмотр основного (Base) рабочего пространства и рабочего пространства функций с использованием стека (Stack). При выполнении М-файлов MATLAB назначает (выделяет) каждому файлу (функции) свое собственное рабочее пространство, которое называется рабо-чим пространством функции и не совпадает с основными рабочим пространством системы MATLAB. При редактировании исполняемых файлов вы можете переходить из основного рабочего пространства в рабочее пространство любой исполняемой функции при помощи поля Stack в ОПРП. Данное поле активизируется только в режиме отладки (более подробно эта возможность будет расмотрена в дальнейшем).
Построение графиков переменных. Вы можете построить график любой переменной из рабочего пространства. Для этого надо щелкнуть правой кнопкой мыши на переменную в ОПРП, которую вы хотите отобразить графически, и из появившегося контекстного меню выбрать опцию Graph Selection и далее выбрать тип графика, который вы хотите построить. Соответствующий график появится в открывшемся специальном окне представления гра-фической информации (figure window). В дальнешем для краткости эти окна буде называть графическими окнами.
Просмотр и редактирование массивов данных при помощи
редактораArray Editor
Редактор Массива Данных (РМД) Array Editor предназначен для визуального просмотра и редактирования одно- и двумерных числовых массивов, символьных строк и ячеек сим-вольных строк.
Открытие РМД. Для вызова РМД из ОПРП следует:
1. Выделить в ОПРП желаемую переменную или переменные обычным образом.
2. Щелкнуть по кнопке в инструментальной линейке ОПРП или выбрать из контекст-ного меню опцию Open Selection. В случае одной перменной можно также ограничиться двойным щелчком по выбранной переменной.
В результате появится следующее окно:
Изменение значений Изменение формата
элементов массива представления данных Изменение размерностей массива
Выбор различных переменных для просмотра
Рис.4. Общий вид окна Редактора Массива Данных
Повторение перечисленных выше шагов приведет к открытию дополнительных переменных в РМД. Доступ к каждой переменной осуществляется через ярлыки внизу окна РМД (см. рис. 4) или посредством меню Window.
Эквивалнтная функция ! Для просмотра содержания переменной рабочего пространства достаточно напечатать ее имя в командной строке. Так, например, при вводе в командной строке переменной m (см. рис. 4) , MATLAB ответит
m =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
Для открытия РМД с требуемой переменной из командной строки MATLAB-а, можно вос-пользоваться функцией openvar с соответствующей переменной в качестве аргумента. На-пример, при вводе openvar('m') MATLAB откроет РМД с переменной m.
Изменение значений элементов в РМД. Для изменения значений элементов в РМД нужно щелкнуть на ту ячейку таблицы, которую вы хотите изменить. Далее следует ввести новое значение элемента и нажать Enterили щелкнуть по другой ячейке; произойдет соответству-ющее изменение. Для изменения размерностей массива, следует напечатать новые значения для числа строк и столбцов в поле Size. Если вы увеличиваете размер, то новые строки и столбцы добавятся к концу таблицы и будут заполнены нулями. При уменьшении размера вы потеряете данные - MATLAB просто удалит последние строки и столбцы.
Пути доступа системы MATLAB
При поиске М-файлов или других файлов, хранящихся в вашей файловой структуре, MATLAB использует концепцию путей доступа (search path). Любой файл (функция), кото-рый вы хотите исполнитьв системе MATLAB должен находится в директории, находящей-ся на путях доступа или в текущей директории. По умолчанию, все файлы поставляемые с MATLAB и соответствующими пакетами прикладных программ фирмы MathWorks вклю-чены в пути доступа. Если вы создаете какой-либо файл, предназначенный для использова-ния системой MATLAB, необходимо включить директорию, содержащую этот файл, в пути доступа системы MATLAB.
Внимание ! Если вы создаете свой собственный М-файл или модифицируете любой имею-щийся М-файл, поставленный с системой MATLAB, сохраняйте их в директории, которая не находится на пути $matlabroot/toolbox/matlab, где $matlabroot - корневая директория системы MATLAB на вашем компьютере. Если вы храните какие-либо свои файлы в дирек-тории $matlabroot/toolbox/matlab, они будут уничтожены при переустановке или установке новой версии MATLAB-а на вашем компьютере.
Суть концепции путей доступа. Все используемые вами файлы рассматриваются как нахо-дящиеся на путях доступа системы MATLAB. Когда вы включаете новую директорию в пути доступа, вы добавляете ее к имеющимся путям. Поддиректории (subdirectories) должны быть добавлены в пути доступа явным образом; они не включаются в пути доступа автоматически, при включении их родительских директорий. Пути доступа системы MATLAB хранятся в файле pathdef.m. Порядок расположения директорий на путях доступа имеет существенное значение. Система MATLAB ищет любой объект (переменную, функцию и т.д.), например, названный foo, следующим образом. Если вы вводитеfoo в командной строке, то система MATLAB выполняет следующие действия:
1. Ищетfoo как переменную.
2. Проверяет, не является лиfoo встроенной функцией.
3. Ищет в текущей директории файл названный foo.m.
4. Ищет по очереди во всех директориях на пути доступа MATLAB файл foo.m.
Хотя в действительности схема поиска является более сложной, эта упрощенная схема явля-ется достаточно точной для обычных М-файлов, с которыми имеет дело потребитель.