Labs Matlab / Lab1 / index3
.htm3. Интерфейс MATLAB.
В данном разделе необходимо изучить материал и выполнить примеры и задания, выделенные красным цветом.
Главное окно Запуск системы MATLAB вызывает появление главного окна (Рис. 1).
Рис.1. Расширенный главного окна MATLAB
С помощью команды меню Desktip / Desktop Layout / Command Window Only главное окно MATLAB преобразуется к сокращенному виду (только командное окно) (рис. 2).
Рис.2. Упрощенный вид главного окна MATLAB.
Обратное переключение можно осуществить с помощью команды меню Desktip / Desktop Layout / Default.
Командное окно (Окно Command Window) Окно Command Window является для пользователя наиболее важным. Посредством этого окна (рис. 1) вводятся математические выражения, получаются результаты вычислений, а также выдаются сообщения, посылаемые системой.
Математические выражения пишутся в командной строке после знака приглашения ».
Каждая команда в командном окне обрабатывается немедленно после нажатия клавиши ENTER, при этом значения выходных параметров выводятся в то же командное окно, а для рисунков открываются графические окна.
Наберем в строке ввода выражение:
» х=2+3
Для выполнения действия нажмем клавишу <Enter>. Результат следующий:
>> x=2+3
x =
5
>>
Если мы захотим исправить одну из цифр, то у нас ничего не получится. Невозможность редактирования ранее введенной команды простой установкой курсора в нужную строку является одной из особенностей системы MATLAB.
Система "помнит" введенные вами команды, они загружаются в стек, поэтому иногда нет необходимости набирать их заново, а достаточно найти в предыстории сеанса (в окне истории команд) похожую команду, мышкой перетащить ее в командное окно, отредактировать и исполнить нажатием Enter.
Кроме того, клавиша "↑" вызывает появление последней команды, повторное нажатие переводит к предпоследней, и т.д. Стек команд закольцован и в обратной последовательности команды вызываются клавишей "↓" (первая команда сеанса, вторая и т.д.). Очистить командное окно можно с помощью меню EDIT / Clear Command Window.
Рабочая область (Окно Workspace) В процессе работы используются переменные различных типов. Созданные переменные хранятся в специально отведенной области памяти компьютера. Они не исчезают сами по себе, а только при выходе из программы или с помощью специальных команд. При этом переменные (точнее их значения) можно использовать в любом вводимом нами математическом выражении. Окно Workspace (Рабочая область) предоставляет пользователю список всех переменных, хранящихся в рабочем пространстве (рис. 1). Выбрать можно любую переменную, просмотреть ее содержимое или выполнить какие-либо другие действия. Упомянутые действия выполняются посредством контекстного меню (нужно щелкнуть правой кнопкой мыши по имени переменной в списке).
Очистить рабочую область можно с помощью меню EDIT / Clear Workspsce.
Окно Current Directory (Текущий каталог) Является аналогом известной программы Проводник, но имеет для MATLAB свое особое предназначение (рис. 3).
Рис. 3. Окно Current Directory (Текущий каталог)
Дело в том, что, кроме работы с математическими выражениями из командного окна, пользователь также может работать с файлами (об этом речь пойдет в следующих лабораторных работах). К тому же математические функции, которые мы используем, физически представляют собой файлы, названные по именам функций. В этих файлах записаны программы, реализующие функции. Таким образом, пользователь постоянно использует файлы. Например, указывая встроенную функцию, мы фактически пишем имя файла (без расширения), в котором хранится текст программы. Система выполняет поиск таких файлов в первую очередь в текущем каталоге.
Задание. В Проводнике Windows создайте папку со своей фамилией (латинскими символами, это особенность MATLAB) в месте, указанном преподавателем. Внутри этой папки создайте папку для лабораторной работы № 1, например LAB1. С помощью правой кнопки выбора текущего каталога перейдите в данный каталог. Первоначально он должен быть пустым. В дальнейшем каждый ваш сеанс работы с MATLAB должен начинаться с выбора вашего текущего каталога. Окно истории команд (Command History) Все команды, которые набираются в командной строке Command Window (Окно команд), автоматически образуют список, который и выводится в окне Command History (История команд) (Рис. 1). Чем полезен этот список? Если появилась необходимость повторить ранее выполненную команду, ее можно отыскать в списке Command History (История команд) и, дважды щелкнув по ней левой кнопкой мыши, выполнить.
Содержимое данного окна не теряется после выхода из системы и выключения компьютера.
Очистить список команд можно только с помощью меню EDIT / Clear Command History.
Элементы языка программирования MATLAB. Работа с матрицами.
Рис.4.
Сформируем несколько переменных, знакомясь попутно с элементами языка. Выполним команду (элементы строки матрицы при вводе разделяются запятой или пробелом; строки отделяются друг от друга точкой с запятой) формирования матрицы (рис. 4)
>>A=[1 0 0 4; 0 2 1 0; 1 2 0 0]
Завершение командной строки символом ";" в системе MATLAB означало бы подавление вывода результата в командное окно. Наша команда не заканчивается точкой с запятой, поэтому в командном окне появляется ответ в виде
A =
1 0 0 4
0 2 1 0
1 2 0 0
Размер переменной в формате вектора из двух компонент (<число строк> <число столбцов>) возвращает функция size. В данном случае
size(A) = [3 4]
Команда
A([1,3], 2:4)
формирует новую матрицу из элементов матрицы A, находящихся на пересечении строк с номерами 1 и 3 и столбцов с номерами 2, 3, 4, присваивая результат переменной ans (answer), которая всегда содержит результат вычисления последнего выражения, если он не был присвоен какой-нибудь переменной. В данном случае
ans =
0 0 4
2 0 0
Рис.5. Командное окно и браузер рабочей области.
С переменной ans можно оперировать как с любой другой. На рис. 5 матрица ans транспонируется (символ "апостроф"), и результат получает имя B (c подавлением вывода). Затем запрашивается содержимое B командой, состоящей исключительно из идентификатора этой переменной. В одной строке допускается несколько команд, разделенных символами "," или ";". При этом разделитель "," означает вывод результата той операции, после которой он поставлен.
Сформируем вектор-столбец, совпадающий со вторым столбцом матрицы A
>>a = A(:,2)
a=
0
2
2
Разделитель ":" используется для формирования списков или векторов. Выражение n:m означает список n, n+1, … , m; а выражение n:p:m – список от n до m c шагом p; двоеточие без пределов означает весь промежуток изменения индекса, в том числе двойного. Так команда A(:) развернула бы матрицу A по столбцам в один "длинный" вектор-столбец.
Выполним теперь несколько умножений, используя команду disp для вывода результатов. При таком выводе MATLAB не повторяет имя переменной, в остальном же команды A и disp(A) эквивалентны.
>>С=а*а'; disp(С)
0 0 0
0 4 4
0 4 4
>>d=(а')*а; disp(d)
8
Произведение матрицы размера [n r] на матрицу размера [r m] есть матрица размера [n m], поэтому здесь C=а*а' – матрица, а d – скалярный квадрат вектора а. Точка в сочетании со знаком операции означает, что операция выполняется поэлементно. Так ".*" означает поэлементное умножение
g=а.*а; disp(g')
0 4 4
Спросим теперь систему о содержимом рабочей области. Запрос whos заставляет систему дать подробный ответ
Рис.6. Таблица с содержимым рабочей области в командном окне.
Таблица на рис. 6 иллюстрирует две важных особенности MATLAB:
MATLAB различает имена, набранные в разных регистрах.
В MATLAB векторы и скалярные переменные трактуются как матрицы размера [1 m], [n 1] и [1 1].
Более подробную информацию см. в справочнике.