МATLAB_ЛР№1. Лабораторная работа 1 Работа в режиме командной строки в системе matlab
![]()
|
Лабораторная работа №1 Работа в режиме командной строки в системе MATLAB Цель работы:Освоение принципов и правил работы в системе MATLAB в режиме командной строки. Знакомство с основными типами данных в MATLAB. Краткая характеристика MATLAB MATLAB (сокращение от англ. «MatrixLaboratory») – это пакет прикладных программ для решения задач технических вычислений и одноименный язык программирования, используемый в этом пакете. Основными достоинствами системы MATLAB являются быстрые численные алгоритмы, визуализация вычислений, интерактивная среда программирования, связь с языками программирования С, С++, FORTRAN и Java, а так же обмен данными с другими приложениями. Система MATLAB поддерживает работу в двух режимах: - режим командной строки; - режим программирования. В режиме командной строки система MATLAB представляет собой мощный инженерный калькулятор, позволяющий пошагово реализовывать достаточно сложные алгоритмы расчетов. В режиме командной строки диалог с пользователем осуществляется в окне Command Window, при этом должны соблюдаться следующие основные правила: Ввод осуществляется после приглашения системы в виде последовательности символов '>>' в начале строки и завершается нажатием клавиши 'Enter', после чего на экран выводится результат вычисления введенного выражения; Символ ' ; ' (точка с запятой) в конце строки блокирует автоматический вывод результата вычисления; Символ ' … ' (многоточие) в конце строки означает, что следующая строка является продолжением предыдущей; Любой текст, введенный после символа ' % ' (процент), воспринимается как комментарий. В текущей сессии вводимый построчно текст сохраняется в буфере, что позволяет вызывать его повторно с помощью клавиш управления курсором ↑ и ↓. Последовательность команд текущей сессии отображается в окне CommandHistory и сохраняется после выхода из MATLAB. 2. Интерфейс MATLAB Пользователь имеет возможность самостоятельно настроить интерфейс системы MATLAB. При использовании настроек по умолчанию (Layout→Default) открывается интерфейс (рисунок 1), который содержит следующие элементы: Командное окно (CommandWindow), предназначенное для работы в режиме командной строки; Рабочая область (Workspace), в которой отображаются текущие переменные; Путь к рабочему каталогу, используемому для хранения файлов данной сессии; Содержимое рабочего каталога (CurrentFolder); История команд (CommandHistory), введенных в командное окно. ![]() Рисунок 1. Основные элементы пользовательского интерфейса MATLAB 3. Работа в режиме командной строки В режиме командной строки MATLAB выделяют следующие базовые объекты: команды; операторы; константы; переменные; функции; выражения. Команды Команда – это объект языка MATLAB со стандартным именем, предназначенный для взаимодействия с системой MATLAB и имеющий формат: <команда><содержательная часть> где: <команда> – стандартное имя команды; <содержательная часть> – уточняется для каждой конкретной команды и может отсутствовать. Например, для очистки окна CommandWindowиспользуется команда clc: >> clc Операторы Оператор – это объект языка MATLAB со стандартным именем, предназначенный для разработки программ. В режиме командной строки используют оператор присваивания. Различают две его разновидности: оператор явного присваивания (=) с форматом <имя переменной>= <выражение>. С помощью оператора присваивания '=' переменной с указанным именем присваивается значение выражения. Оператор неявного присваивания с форматом <выражение>. В данном случае значение выражения присваивается переменной со стандартным именем ans. Переменные Переменная – это объект языка MATLAB, который в процессе вычисления может менять свое значение. Переменные представляются своими именами – идентификаторами. Для создания переменной в MATLAB необходимо присвоить значение переменной с заданным именем с помощью оператора присваивания '='. Для примера создадим переменную x=2: >> x = 2 x = 2 Встречая имя новой переменной, MATLAB автоматически создает новую переменную и выделяет для нее необходимый объем памяти. Если данная переменная уже существовала, то MATLAB изменит ее значение. Имя переменной в MATLAB может содержать латинские буквы (A-Z и a-z), цифры (0-9), знак подчеркивания (_). Имя обязательно должно начинаться с буквы и не должно совпадать с ключевыми словами MATLAB. Так же необходимо учитывать, что MATLAB чувствителен к регистру, и поэтому будет считать переменные x и X разными. В таблице 1 приведены примеры допустимых и недопустимых имен переменных: Таблица 1. Примеры имен переменных
Тип созданной переменной не объявляется, а определяется типом присваиваемого значения. Основные типы данных, используемых в MATLAB, рассмотрены далее в п.п. 4. В данном примере переменная x будет иметь тип double (число с плавающей точкой двойной точности), так как все числа в MATLAB по умолчанию имеют тип double. Все переменные по умолчанию считаются матрицами. Удаление созданных переменных Все созданные переменные и их значения отображаются в окне workspace (рисунок 2). ![]() ![]() Для удаления переменных в MATLAB из рабочей области предусмотрена команда clear. Так, для удаления переменной x вводят: >>clear x Для удаления нескольких переменных достаточно после команды сlear перечислить имена переменных через пробел. Если нужно удалить сразу все переменные, команду clear вводят без аргументов: >>clear Константы и системные переменные Константа – это предварительно определенное числовое или символьное значение, представленное уникальным именем. Числа (например 1, -2 и 1.23) являются безымянными числовыми константами. Другие виды констант в MATLAB принято называть системными переменными, поскольку, с одной стороны, они задаются системой при ее загрузке, а с другой – могут переопределяться. Основные системные переменные, применяемые в системе MATLAB, указаны в таблице 2. Таблица 2. Основные системные переменные
Функции В MATLAB различают две разновидности функций – встроенные и внешние. Встроенная функция – это объект языка MATLAB со стандартным именем, предназначенный для выполнения действий с параметрами (аргументами), заключенными в круглые скобки. Обращение к функции происходит по ее имени и имеет формат: [Y1, Y2,…] = <имя функции>(Х1, Х2,…) где: <имя функции> – стандартное имя функции; (Х1, Х2,…) – входные параметры в круглых скобках; [Y1, Y2,…] – выходные параметры в квадратных скобках, если выходной параметр единственный, скобки можно не ставить. Некоторые встроенные функции MATLAB приведены в приложении. Подробное описание встроенных функций и порядок их вызова доступен в командной строке с помощью команды help <имя функции>. Внешние функции (функции пользователя) как правило должны быть расположены в рабочем каталоге. Выражения Выражение – это объект языка MATLAB, представляющий собой имеющую смысл совокупность констант, переменных и функций, объединенных символами операций. Особенностью выражений MATLAB является то, что входящие в них переменные по умолчанию считаются матрицами. Различаются следующие виды выражений в MATLAB: - арифметические; - логические; - символьные. В выражениях могут использоваться любые операции, а так же их комбинации. При этом операции в выражении последовательно, в соответствии с установленным для них приоритетом. Приоритет операций представлен в таблице 3. Таблица 3. Приоритеты операций
Внутри каждого уровня операторы имеют равный приоритет и вычисляются в порядке следования слева направо. Заданный по умолчанию порядок следования может быть изменен с помощью круглых скобок. Приведем пример: >> x = [0 pi*5/2]; >> y = ( sin( 2 * x ) + 1 ) .* x y = 0 7.8540 Простые вычисления В командной строке в режиме диалога можно набрать команду или выражение и, нажав Enter, получить ответ (ans). Вычислим значение полинома ![]() ![]() ![]() ![]() >> 3 * 2 ^ 2 - 4 * 2 + 10 и нажмем Enter. ans = 14 Теперь попробуем вычислить более сложное выражение ![]() ![]() ![]() ![]() >>cos(pi/2)*cos(-pi/6)-sin(pi/2)*sin(-pi/6) ans = 0.5000 Проделаем вычисления с использованием переменных: >> x = 2; >> y = 3 * x ^ 2 - 4 * x + 10; Отметим, что после выражения был поставлен символ «;». Символ «;» подавляет вывод в консоль значения вычисленного выражения или результата, присвоенного переменной. Для того, чтобы вывести значение данной переменной, достаточно просто ввести ее имя: >> y y = 14 Приведем другой пример: >> a = pi / 2; >> b = - pi / 6; >>cos(a) * cos(b) - sin(a) * sin(b) ans = 0.5000 В приведенном выше примере результат вычисления выражения не был присвоен какой либо переменной. В таких случаях используется оператор неявного присваивания, то есть MATLAB присваивает результаты вычислений переменной ans. 4. Основные типы данных, используемых в MATLAB Как говорилось ранее, тип созданной переменной в MATLAB определяется типом присваиваемого ей значения. Все типы данных в MATLAB являются матричными. Матрицей называется прямоугольная таблица, состоящая из ![]() ![]() ![]() ![]() ![]() Матрица содержит элементы одного типа данных. В матрице обращение к элементу осуществляются по индексу. В круглых скобках указывается сначала номер строки, а затем, через запятую, номер столбца элемента, к которому выполняется обращение. Например, запись А(1, 3) означает, что выполняется обращение к элементу матрицы А, содержащемуся в 1 строке, 3 столбце. Для каждого типа данных устанавливаются свои операции. Рассмотрим основные типы данных в MATLAB. Числовые (NUMERIC) типы данных Все арифметические операции в системе MATLAB выполняются над числами с плавающей запятой двойной точности - double. Любая переменная, перед выполнением операций над ней, должна быть преобразована к типу double. При создании числовая переменная по умолчанию получает тип double. При вводе и выводе чисел в MATLAB можно использовать формат чисел с фиксированной запятой. Дробная часть числа отделяется от целой точкой, а не запятой. Все операции в MATLAB реализуются посредством функций. Например, для выполнения операции сложения MATLAB вызывает функцию plus( ). Перечень основных встроенных в систему MATLAB функций для числовых данных приведены в учебном пособи «Алгоритмизация и структурное программирование в MATLAB». Для матриц в MATLAB существуют две различные операции, связанные с умножением, делением и возведением в степень. Для обозначения поэлементной операции перед соответствующим оператором ставится точка. Так, при матричном умножениидвух матриц с помощью оператора «*» будет выполнено умножение согласно правилам линейной алгебры, порядок следования матриц в выражении определяет значение произведения. При поэлементном умножение двух матриц с помощью оператора «.*»каждый элемент первой матрицы будет умножен на соответствующий элемент второй матрицы. Порядок следования матриц в выражении не важен. Пример матричного и поэлементного умножения двух матриц приведен ниже. >> a=[1 2; 3 4] a = 1 2 3 4 >> b=[4 3; 2 1] b = 4 3 2 1 >> c=a*b c = 8 5 20 13 >> c=b*a c = 13 20 5 8 >>d=a.*b d = 4 6 6 4 >>d=b.*a d = 4 6 6 4 |