Самоучитель Matlab
Рис. 1.1. Рабочее окно приложения Matlab
Рис. 1.2. Простые арифметические вычисления
16
Глава 1. Принципы работы Matlab и основы вычислений
На заметку
Чтобы "отделить" командное окно от структуры рабочего окна приложения Matlab, достаточно щелкнуть на пиктограмме с витой стрелкой в строке названия окна. В левой нижней части командного окна отображается пиктограмма утилиты подбора функций. Убирается и отображается эта пиктограмма с помощью контекстного меню. Вообще же, здесь и далее материал книги излагается с тем расчетом, что базовые манипуляции с элементами графического интерфейса приложения Matlab читатель сможет выполнять самостоятельно. Если все же проблемы в этом плане возникнут, можно обратиться к литературе, специально посвященной вопросу правильного нажимания кнопок.
Что касается непосредственно вычислений, то, например, для вычисления выражения 1+2*3 соответствующую инструкцию вводим в командную строку, после чего нажимаем клавишу <Enter>. Выражение вычисляется, результат отображается под строкой ввода в формате
ans=
результат
Далее отображается индикатор строки ввода для вычисления следующего выражения. Следует также иметь в виду, что редактировать команду ввода можно, только пока она не выполнена.
Вкачестве основных арифметических операторов в Matlab используются: оператор + для вычисления суммы, оператор – для вычисления разности, оператор * для вычисления произведения, оператор / для вычисления частного и оператор ^ для возведения в степень. Это далеко не все арифметические операторы. Арифметическим операторам Matlab посвящен отдельный раздел этой главы. Пока же ограничимся тем, что будем использовать перечисленные выше операторы для работы со скалярными величинами. Однако совершенно очевидно, что ценность приложения Matlab была бы невелика, если бы возможности Matlab ограничивались арифметическими вычислениями, подобными тем, что приведены выше. Для более сложных вычислений обычно приходится вводить переменные.
Вобщем смысле переменная – это область памяти, к которой можно обращаться по имени для получения значения, записанного в этой области, а также его изменения. В строго типизированных языках программирования (таких, как С++, Java или Pascal) для использования переменной необходимо предварительно ее объявить, указав при этом, к какому типу она относится. В Matlab ничего подобного делать не нужно. Переменной сразу можно присваивать значение. В качестве оператора присваивания используется знак равенства =. Имя переменной, которой присваивается значение, указывается слева от оператора присваивания, а присваиваемое переменной значение – справа от оператора присваивания. Значение, присваиваемое переменной, если речь идет о скалярных величинах, может быть числом
17
Самоучитель Matlab
или выражением, содержащим другие переменные. При этом необходимо, чтобы этим переменным ранее уже было присвоено значение. Пример использования скалярных переменных в пошаговых вычислениях приведен в рабочем документе на рис. 1.3.
Рис. 1.3. Использование в вычислениях переменных
Первой командой x=0.5*sin(0.1) присваивается значение переменной x. При этом использована встроенная функция Matlab sin() для вычисления синуса. Присвоенное в результате этой переменной значение отображается внизу под строкой ввода в формате
переменная=
значение
Аналогично следующей командой y=0.3*cos(0.2) значение присваивается переменной y. Здесь cos() – встроенная функция Matlab для вычисления косинуса. Обращаем также внимание читателя, что в качестве десятичного разделителя при вводе действительных чисел с дробной десятичной частью используется точка.
Наконец, командой z=(x^2+y^2)^(1/3) значение присваивается переменной z. В выражение, определяющее значение переменной z, входят переменные x и y. Однако поскольку предварительно этим переменным были присвоены значения, ошибки не возникает и значение переменной z присваивается корректно.
Есть две базовые операции, которые достаточно полезны, особенно при большем объеме вычислений. Во-первых, в некоторых случаях нужно
18
Глава 1. Принципы работы Matlab и основы вычислений
узнать, какие переменные рабочего пространства уже используются, и, во-вторых, иногда приходится, образно выражаясь, "удалять переменные с игрового поля" – то есть освобождать память, выделенную под эти переменные. Первая операция выполняется с помощью инструкции whos. Если ввести в командную строку эту инструкцию и нажать клавишу <Enter>, будет выведен список доступных в рабочем пространстве переменных с описанием их некоторых атрибутов. Пример использования инструкции whos приведен в документе на рис. 1.4.
Рис. 1.4. Список переменных рабочего пространства
В данном случае список состоит из четырех переменных: трех объявленных переменных пользователя x, y и z, и системной переменной ans.
Очистка пространства переменных осуществляется с помощью инструкции clear, после которой, через пробел, указываются имена удаляемых переменных. На рис. 1.5 представлен результат выполнения команды clear x y, после которой выполнена команда whos для проверки списка переменных рабочего пространства.
Рис. 1.5. Очистка пространства переменных
Поскольку командой clear x y переменные x и y из рабочего пространства удалены, в списке переменных остались только переменная z и системная переменная ans.
19
Самоучитель Matlab
На заметку
Хотя значение переменной z присваивается на основе значений переменных x и y, их удаление из рабочего пространства (или изменение их значения) на значение переменной z никак не влияет.
Для удаления из рабочего пространства всех переменных используют инструкцию clear без указания переменных.
Впредыдущих примерах использовались скалярные величины. С точки зрения основополагающей идеологии и технической реализации, скаляры в Matlab являются скорее экзотикой, чем обычным явлением. Дело в том, что в Matlab базовым типом данных являются матрицы (или массивы).
Вэтом отношении скаляр "с точки зрения Matlab" (если можно так выразиться) является матрицей размера 1×1.
Как известно, массивы можно индексировать, то есть для доступа к элементу массива указывается имя массива и его индекс (или индексы). Индексы указываются после имени матрицы (массива) в круглых скобках и разделяются запятыми. К скалярной переменной можно обращаться как по имени, так и указав индексы – в данном случае это (1,1). Пример обращения к скалярной величине в обычном режиме и с помощью пары единичных индексов показан в документе на рис. 1.6.
Рис. 1.6. Обращение к скаляру как к элементу матрицы
Командой MyVar=10 переменной MyVar присваивается значение 10. Обращаться к переменной можно как по имени MyVar, так и в режиме обраще-
20