Matlab построение графиков

1. Построение таблиц значений функции одной переменной в пакете MatLab

Отображение функции в виде таблицы удобно, если имеется сравнительно небольшое число значений функции. Пусть требуется вывести в командное окно таблицу значений функции

в точках 0.2, 0.3, 0.5, 0.8, 1.3, 1.7, 2.5.
Задача решается в два этапа.
1. Создается вектор-строка х, содержащая координаты заданных точек.
2. Вычисляются значения функции y(х)от каждого элемента вектора х и записываются полученные значения в вектор-строку у.
Значения функции необходимо найти для каждого из элементов вектор-строки х, поэтому операции в выражении для функции должны выполняться поэлементно.

Обратите внимание, что при попытке использования операций возведения в степень ^, деления / и умножения * (которые не относятся к поэлементным) выводится сообщение об ошибке уже при возведении sin(x) в квадрат:

» у = sin(х)^2/(1+соз(х))+exp(-x)*log(x)
??? Error using ==> ^
Matrix must be square.

Дело в том, что в MatLab операции * и ^ применяются для перемножения матриц соответствующих размеров и возведения квадратной матрицы в степень.
Таблице можно придать более удобный для чтения вид, расположив значения функции непосредственно под значениями аргумента:

» х
х =
0.2000 0.3000 0.5000 0.8000 1.3000 1.7000 2.5000 » у
у =
-1.2978 -0.8473 -0.2980 0.2030 0.8040 1.2258 1.8764

Часто требуется вывести значение функции в точках отрезка, отстоящих друг от друга на равное расстояние (шаг). Предположим, что необходимо вывести таблицу значений функции y(х)наотрезке с шагом 0.2. Можно, конечно, ввести вектор-строку значений аргумента х= из командной строки и вычислить все значения функции так, как описано выше. Однако, если шаг будет не 0.2, а, например 0.01, то предстоит большая работа по вводу вектора х.
В MatLab предусмотрено простое создание векторов, каждый элемент которых отличается от предшествующего на постоянную величину, т.е. на шаг. Для ввода таких векторов служит двоеточие (не путайте с индексацией при помощи двоеточия). Следующие два оператора приводят к формированию одинаковых вектор-строк. Условно можно записать

Условно можно записать

х =

Необязательно заботиться о том, чтобы сумма предпоследнего значения шага равнялась бы конечному значению, например, при выполнении следующего оператора присваивания

» х =
х =
1.0000 1.2000 1.4000 1.6000 1.8000

Вектор-строка заполнится до элемента, не превосходящего определенное нами конечное значение. Шаг может быть и отрицательным:

» х =
х =
1.9000 1.7000 1.5000 1.3000 1.1000

В случае отрицательного шага для получения непустой вектор-строки начальное значение должно быть больше конечного.
Для заполнения вектор-столбца элементами, начинающимися с нуля и заканчивающимися 0.5 с шагом 0.1, следует заполнить вектор-строку, а затем использовать операцию транспонирования:

» х = ‘
х =
0
0.1000
0.2000
0.3000
0.4000
0.5000

Обратите внимание, что элементы вектора, заполняемого при помощи двоеточия, могут быть только вещественными, поэтому для транспонирования можно использовать апостроф вместо точки с апострофом.
Шаг, равный единице, допускается не указывать при автоматическом заполнении:

» х =
х =
1 2 3 4 5

Пусть требуется вывести таблицу значений функции

на отрезке с шагом 0.05,
Для выполнения этого задания необходимо произвести следующие действия:
1. Сформировать вектор-строку х при помощи двоеточия.
2. Вычислить значения у(х)отэлементов х.
3. Записать результат в вектор-строку y.
4. Вывести хи у.

Вектор-строки x и yсостоят из двадцати одного элемента, и не помещается на экране в одну строку, поэтому выводятся по частям. Так как х иy хранятся в двумерных массивах размерностью один на двадцать один, то выводятся по столбцам, каждый из которых состоит из одного элемента. Сначала выводятся столбцы с первого по седьмой (columns 1 through 7), затем — с восьмого по четырнадцатый (columns 8 through 14), и, наконец, — с пятнадцатого по двадцать первый (columns 15 through 21). Более наглядным и удобным является графическое представление функции.

2. Построение графиков функции одной переменной

2.1. Графики функций в линейном масштабе

MatLab обладает хорошо развитыми графическими возможностями для визуализации данных. Рассмотрим в начале построение простейшего графика функции одной переменной на примере функции

,

определенной на отрезке . Вывод функции в виде графика состоит из следующих этапов:
1. Задание вектора значений аргумента х.
2. Вычисление вектора у значений функции y(х).
3. Вызов команды plot для построения графика.
Команды для задания вектора х и вычисления функции лучше завершать точкой с запятой для подавления вывода в командное окно их значений (после команды plot точку с запятой ставить необязательно, т. к. она ничего не выводит в командное окно).

» х = ;
» у = ехр(-х).*sin(10*x);
» plot(x, у)

После выполнения команд на экране появляется окно Figure No. 1 с графиком функции. Окно содержит меню, панель инструментов и область графика. В дальнейшем будут описаны команды, специально предназначенные для оформления графика. Сейчас нас интересует сам принцип построения графиков и некоторые простейшие возможности визуализации функций.
Для построения графика функции в рабочей среде MatLab должны быть определены два вектора одинаковой размерности, например х и у. Соответствующий массив х содержит значения аргументов, а у — значения функции от этих аргументов. Команда plot соединяет точки с координатами (x(i), y(i)) прямыми линиями, автоматически масштабируя оси для оптимального расположения графика в окне. При построении графиков удобно расположить на экране основное окно MatLab и окно с графиком рядом так, чтобы они не перекрывались.
Построенный график функции имеет изломы. Для более точного построения графика функцию необходимо вычислить y(х) в большем числе точек на отрезке , т.е. задать меньший шаг при вводе вектора х:

» х = ;
» у = ехр(-х).*sin(10*x);
» plot(x, у)

В результате получается график функции в виде более плавной кривой.
Сравнение нескольких функций удобно производить, отобразив их графики на одних осях. Например, построим на отрезке графики функций
,

при помощи следующей последовательности команд:

» х = ;
» f = sin(x.^-2);
» g = sin(1.2*x.^-2);
» plot(x, f, x, g)

Функции необязательно должны быть определены на одном и том же отрезке. В этом случае при построении графиков MatLab выбирает максимальный отрезок, содержащий остальные. Важно только в каждой паре векторов абсцисс и ординат указать соответствующие друг другу вектора, например:

» х1 = ;
» f = sin(x1.^-2);
» х2 = ;
» g = sin(1.2*x2.^-2);
» plot(x1, f, x2, g)

Аналогичным образом при помощи задания в plot через запятую пар аргументов вида: вектор абсцисс, вектор ординат, осуществляется построение графиков произвольного числа функций.

Замечание 1

Использование plot с одним аргументом — вектором — приводит к построению «графика вектора», т.е. зависимости значений элементов вектора от их номеров. Аргументом plot может быть и матрица, в этом случае на одни координатные оси выводятся графики столбцов.
Иногда требуется сравнить поведение двух функций, значения которых сильно отличаются друг от друга. График функции с небольшими значениями практически сливается с осью абсцисс, и установить его вид не удается. В этой ситуации помогает функция plotyy, которая выводит графики в окно с двумя вертикальными осями, имеющими подходящий масштаб.
Сравните, например, две функции: и

» х = ;
» f = х.^-3;
» F = 1000*(х+0.5).^-4;
» plotyy(x, f, x, F)

При выполнении этого примера обратите внимание, что цвет графика совпадает с цветом соответствующей ему оси ординат.
Функция plot использует линейный масштаб по обеим координатным осям. Однако MatLab предоставляет пользователю возможность строить графики функций одной переменной в логарифмическом или полулогарифмическом масштабе.

2.2. Графики функций в логарифмических масштабах

Для построения графиков в логарифмическом и полулогарифмическом масштабах служат следующие функции:
— loglog (логарифмический масштаб по обеим осям);
— semilogx (логарифмический масштаб только по оси абсцисс);
-semilogy (логарифмический масштаб только по оси ординат).

Аргументы loglog, semilogx и semilogy задаются в виде пары векторов значений абсцисс и ординат так же, как для функции plot, описанной в предыдущем пункте. Построим, например, графики функций и на отрезке в логарифмическом масштабе по оси х:

» х = ;
» f = log(0.5*x);
» g = sin(log(x));
» semilogx(x, f, x ,g)

2.3. Задание свойств линий на графиках функций

Построенные графики функций должны быть максимально удобными для восприятия. Часто требуется нанести маркеры, изменить цвет линий, а при подготовке к монохромной печати — задать тип линии (сплошная, пунктирная, штрих-пунктирная и т.д.). MatLab предоставляет возможность управлять видом графиков, построенных при помощи plot, loglog, semilogx и semilogy, для чего служит дополнительный аргумент, помещаемый за каждой парой векторов. Этот аргумент заключается в апострофы и состоит из трех символов, которые определяют: цвет, тип маркера и тип линии. Используется одна, две или три позиции, в зависимости от требуемых изменений. В таблице приведены возможные значения данного аргумента с указанием результата.

Таблица

Цвет

Тип маркера

Тип линии

желтый

точка

сплошная

розовый

кружок

пунктирная

голубой

х

крестик

штрих-пунктирная

красный

+

знак «плюс»

штриховая

зеленый

*

звездочка

синий

квадрат

белый

ромб

черный

Треугольник вершиной вниз

^

Треугольник вершиной вверх

Треугольник вершиной влево

треугольник вершиной вправо

пятиконечная звезда

шестиконечная звезда

Если, например, необходимо построить первый график красными точечными маркерами без линии, а второго график — черной пунктирной линией, то следует использовать команду plot(x, f, ‘r.’, х, g, ‘k:’).

2.4. Оформление графиков функций

Удобство использования графиков во многом зависит от дополнительных элементов оформления: координатной сетки, подписей к осям, заголовка и легенды. Сетка наносится командой grid on, подписи к осям размещаются при помощи xlabel, ylabel, заголовок дается командой title. Наличие нескольких графиков на одних осях требует помещения легенды командой legend с информацией о линиях. Все перечисленные команды применимы к графикам как в линейном, так и в логарифмическом и полулогарифмическом масштабах. Следующие команды выводят графики изменения суточной температуры, которые снабжены всей необходимой информацией.

При добавлении легенды следует учесть, что порядок и количество аргументов команды legend должны соответствовать линиям на графике. Последним дополнительным аргументом может быть положение легенды в, графическом окне:

* —1 — вне графика в правом верхнем углу графического окна;
* 0 — выбирается лучшее положение в пределах графика так, чтобы как можно меньше перекрывать сами графики;
* 1 — в верхнем правом углу графика (это положение используется по умолчанию);
* 2 — в верхнем левом углу графика;
* 3 — в нижнем левом углу графика;
* 4 — в нижнем правом углу графика.

В заголовке графика, легенде и подписях осей допускается добавление формул и изменение стилей шрифта при помощи формата ТеХ.
MatLab выводит графики разным цветом. Монохромный принтер напечатает графики различными оттенками серого цвета, что не всегда удобно. Команда plot позволяет легко задать стиль и цвет линий, например

» plot(x,f,’k-‘,x,g,’k:’)

осуществляет построение первого графика сплошной черной линией, а второго — черной пунктирной. Аргументы ‘k-‘ и ‘k:’ задают стиль и цвет первой и второй линий. Здесь k означает черный цвет, а дефис или двоеточие — сплошную или пунктирную линию. Окно с графиком можно закрыть, нажав на кнопку с крестиком в правом верхнем углу.

3. Построение графиков функций двух переменных

Построение графика функции двух переменных в MatLab на прямоугольной области определения переменных включает два предварительных этапа:
1. Разбиение области определения прямоугольной сеткой.
2. Вычисление значений функции в точках пересечения линий сетки и запись их в матрицу.
Построим график функции z(x, у)= х2 + у2 на области определения в виде квадрата х принадлежит , y — . Необходимо разбить квадрат равномерной сеткой (например, с шагом 0.2) и вычислить значения функций в узлах, обозначенных точками.
Удобно использовать два двумерных массива х и у, размерностью шесть на шесть для хранения информации о координатах узлов. Массив х состоит из одинаковых строк, в которых записаны координаты x1, х2, …, х6, а массив у содержит одинаковые столбцы с y1, у2, …, у6. Значения функции в узлах сетки запишем в массив z такой же размерности (6 x 6), причем для вычисления матрицы Z используем выражение для функции, но с поэлементными матричными операциями. Тогда, например z(3,4) как раз будет равно значению функции z(x,y)в точке (х3, у4). Для генерации массивов сетки х и у по координатам узлов в MatLab предусмотрена функция meshgrid, для построения графика в виде каркасной поверхности — функция mesh. Следующие операторы приводят к появлению на экране окна с графиком функции (точка с запятой в конце операторов не ставится для того, чтобы проконтролировать генерацию массивов):

» Z = X.^2+Y.^2

» mesh(X,Y,Z)

Какие недостатки имеет построенный график? И как их устранить? Построенный график и новый привести в электронном отчете по лабораторной работе.

MatLab позволяет наносить на график дополнительную информацию, в частности, соответствие цветов значениям функции. Сетка генерируется при помощи команды meshgrid, вызываемой с двумя аргументами. Аргументами являются векторы, элементы которых соответствуют сетке на прямоугольной области построения функции. Можно использовать один аргумент, если область построения функции — квадрат. Для вычисления функции следует использовать поэлементные операции.

Рассмотрим основные возможности, предоставляемые MatLab для визуализации функций двух переменных, на примере построения графика функции

на прямоугольной области определения х принадлежит , y .
Подготовим матрицы с координатами узлов сетки и значениями функции:

» = meshgrid(-1:0.05:1, 0:0.05:1);
» Z = 4*sin(2*pi*X).*cos(1.5*pi*Y).*(1-Х.^2).*Y.*(1-Y);

Для построения каркасной поверхности используется функция mesh, вызываемая с тремя аргументами:

» mesh(X,Y,Z)

Цвет линий поверхности соответствует значениям функции. MatLab рисует только видимую часть поверхности.

При помощи команды hidden off можно сделать каркасную поверхность «прозрачной», добавив скрытую часть. Команда hidden on убирает невидимую часть поверхности, возвращая графику прежний вид.

Функция surf строит каркасную поверхность графика функции и заливает каждую клетку поверхности определенным цветом, зависящим от значений функции в точках, соответствующих углам клетки. В пределах каждой клетки цвет постоянный. Посмотрите результаты выполнения команды

» surf(X,Y,Z)

Команда shading flat позволяет убирать каркасные линии. Для получения поверхности, плавно залитой цветом, зависящим от значений функции, предназначена команда shading interp.
При помощи shading faceted можно вернуться к поверхности с каркасными линиями.
Трехмерные графики, получаемые с помощью описанных выше команд, удобны для получения представления о форме поверхности, однако по ним трудно судить о значениях функции. В MatLab определена команда colorbar, которая выводит рядом с графиком столбик, устанавливающий соответствие между цветом и значением функции. Постройте при помощи surf график поверхности и дополните его информацией о цвете.

» surf(X,Y,Z)
» colorbar

Команду colorbar можно применять в сочетании со всеми функциями, строящими трехмерные объекты.

Пользуясь цветной поверхностью, трудно сделать вывод о значении функции в той или иной точке плоскости xy. Команды meshc или surfc позволяют получить более точное представление о поведении функции. Эти команды строят каркасную поверхность или залитую цветом каркасную поверхность и размещают на плоскости xyлинии уровня функции (линии постоянства значений функции):

» surfc(X,Y,Z)
» colorbar

MatLab позволяет построить поверхность, состоящую из линий уровня, при помощи функции contour3. Эту функцию можно использовать так же, как и описанные выше mesh, surf, meshc и surfc с тремя аргументами. При этом число линий уровня выбирается автоматически. Имеется возможность задать четвертым аргументом в contour3 либо число линий уровня, либо вектор, элементы которого равны значениям функции, отображаемым в виде линий уровня. Задание вектора (четвертого аргумента levels) удобно, когда требуется исследовать поведение функции в некоторой области ее значений (срез функции). Постройте, например поверхность, состоящую из линий уровня, соответствующих значениям функции от 0 до 0.5 с шагом 0.01:

» levels = ;
» contour3(X, Y, Z, levels)
» colorbar

4. Построение контурных графиков функций двух переменных

MatLab предоставляет возможность получать различные типы контурных графиков при помощи функций contour и contourf. Рассмотрим их возможности на примере функции

Использование contour с тремя аргументами

» contour(X,Y,Z)

приводит к графику, на котором показаны линии уровня на плоскости xy, но без указания числовых значений на них. Такой график является малоинформативным, он не позволяет узнать значения функции на каждой из линий уровня. Использование команды colorbar также не позволит точно определить значения функции. Каждую линию уровня можно снабдить значением, которое принимает на ней исследуемая функция, при помощи определенной в MatLab функции clabel. Функция clabel вызывается с двумя аргументами: матрицей, содержащей информацию о линиях уровня и указателем на график, на котором следует нанести разметку. Пользователю не нужно самому создавать аргументы clabel. Функция contour, вызванная с двумя выходными параметрами, не только строит линии уровня, но и находит требуемые для clabel параметры. Используйте contour с выходными аргументами CMatr и h (в массиве CMatr содержится информация о линиях уровня, а в массиве h — указатели). Завершите вызов contour точкой с запятой для подавления вывода на экран значений выходных параметров и нанесите на график сетку:

» = contour(X, Y, Z);
» clabel(CMatr, h)
» grid on

Дополнительным аргументом функции contour (так же, как и contour3, описанной выше) может быть или число линий уровня, или вектор, содержащий значения функции, для которых требуется построить линии уровня.
Наглядную информацию об изменении функции дает заливка прямоугольника на плоскости xyцветом, зависящим от значения функции в точках плоскости. Для построения таких графиков предназначена функция contourf, использование которой не отличается от применения contour. В следующем примере выводится график, который состоит из двадцати линий уровня, а промежутки между ними заполнены цветами, соответствующими значениям исследуемой функции:

» contourf(X, Y, Z, 20)
» colorbar

5. Оформление графиков функций

Простым и эффективным способом изменения цветового оформления графика является установка цветовой палитры при помощи функции colormap. Следующий пример демонстрирует подготовку графика функции для печати на монохромном принтере, используя палитру gray.

» surfc(X, Y, Z)
«colorbar
» colormap(gray)
» title(‘График функции z(x,y)’)
» xlabel(‘x’)
» ylabel(‘у’)
» zlabel(‘z’)

Обратите внимание, что команда colormap(gray) изменяет палитру графического окна, т.е. следующие графики будут выводиться в этом окне также в серых тонах. Для восстановления первоначального значения палитры следует применить команду colormap(‘default’). Цветовые палитры, доступные в MatLab, приведены в табл. 2.

Таблица 2

Палитра

Изменение цвета

Плавное изменение красный — оранжевый — желтый.

Похожа на палитру gray, но с легким оттенком синего цвета.

Каждый цвет изменяется от темного к яркому.

Оттенки голубого и пурпурного цветов.

Оттенки медного цвета.

Циклическое изменение красный — белый — синий — черный.

Оттенки серого.

Плавное изменение черный — красный — оранжевый — желтый — белый.

Плавное изменение как цветов радуги.

Плавное изменение синий — голубой — красный — зеленый — желтый — красный.

Похожа на палитру gray, но с легким оттенком коричневого цвета

Циклическое изменение красный — оранжевый — желтый — зеленый — синий — фиолетовый.

Оттенки пурпурного и желтого.

Оттенки зеленого и желтого.

Палитра Windows из шестнадцати цветов.

Один белый цвет.

Оттенок синего и зеленого.

6. Вывод нескольких графиков на одни оси

Для отображения нескольких графиков функций одной переменной на одних осях использовались возможности функций plot, plotyy, semilogx, semilogy, loglog. Они позволяют выводить графики нескольких функций, задавая соответствующие векторные аргументы парами, например plot(x,f,x,g). Однако для объединения трехмерных графиков их использовать нельзя. Для объединения таких графиков предназначена команда hold on, которую нужно задать перед построением графика. В следующем примере объединение двух графиков (плоскости и конуса) приводит к их пересечению. Конус задается параметрически следующими зависимостями:

, , , .

Для графического отображения конуса сначала необходимо сгенерировать с помощью двоеточия вектор-столбец и вектор-строку, содержащие значения параметров на заданном интервале (важно, что u — вектор-столбец, а v-вектор-строка):

» u = ‘;
» v = ;

Далее формируются матрицы X, Y, содержащие значения функций и в точках, соответствующих значениям параметров. Формирование матриц выполняется с помощью внешнего произведения векторов.

Замечание 2

Внешним произведением векторов , называется матрица размера N x M, элементы которой вычисляются по формуле .
Вектор а является вектор-столбцом ив MatLab представляется в виде двумерного массива размера N на один. Вектор-столбец bпри транспонировании переходит в вектор-строку размера один на М. Вектор-столбец и вектор-строка есть матрицы, у которых один из размеров равен единице. Фактически, С = abT, где умножение происходит по правилу матричного произведения. Для вычисления матричного произведения в MatLab используется оператор «звездочка». Определим внешнее произведение для двух векторов:

» a = ;
» b = ;
» C = a*b’
C =
5 6 7
10 12 14
15 18 21

Сформируем матрицы X,Y, необходимые для графического отображения конуса:

» X = 0.3*u*cos(v);
» Y = 0.3*u*sin(v);

Матрица Z должна быть того же размера, что и матрицы X иY. Кроме того, она должна содержать значения, соответствующие значениям параметров. Если бы в функцию входило произведение и и v, то матрицу Z можно было заполнить аналогично матрицам Xи Yпри помощи внешнего произведения. С другой стороны, функцию z(u,v)можно представить в виде , где . Поэтому для вычисления Zможно применить внешнее произведение векторов и , где вектор-строка имеет ту же размерность, что v, но состоит из единиц:

» Z = 0.6*u*ones(size(v));

Все требуемые матрицы для отображения конуса созданы. Задание плоскости выполняется следующим образом:

» = meshgrid(-2:0.1:2);
» Z = 0.5*X+0.4*Y;

Теперь не сложно записать и полную последовательность команд для построения пересекающихся конуса и плоскости:

Команда hidden off применена для того, чтобы показать часть конуса, находящуюся под плоскостью.
Обратите внимание, что команда hold on распространяется на все последующие выводы графиков в текущее окно. Для размещения графиков в новых окнах следует выполнить команду hold off. Команда hold on может применяться и для расположения нескольких графиков функций одной переменной, например,

Построение графиков matlab

MATLABимеет исключительно мощную систему для построения различных двухмерных и трехмерных графиков, а также их настройки, редактирования и форматирования. Типы и подтипы графиковMATLABочень разнообразны. Список функций двумерной графики можно получить командойhelp graph2d, трехмерной –help graph3d.

Графики выводятся в отдельных графических окнах с помощью команды вида figure(n), гдеn – номер графического окна. На одном графике можно построить несколько кривых, отличающихся цветом и типами линий и точек. Графики могут быть скопированы и вставлены в другие приложения:Word,Excel,PowerPointи др. Для этого используется командаEdit/ Copy Figureокна графики.

Часто используемые команды при построении графиков

plot(t,y) % График непрерывной функции y(t)

plot(x1, y1, x2, y2) % Графики зависимостей y1 от x1 и y2 от x1

stem(x,y) %График дискретной функции (сигнала)y(x)

stairs(x,y) % График в виде ступенчатой линии

loglog(f,Y) %График с логарифмическими масштабами по x и y

semilogx(f,Y) %Логарифмический масштаб поxи линейный поy

polar(phi,r) % График в полярных координатах

title(‘ название’) % Вывод заголовка графика

xlabel(‘время’) % Метка по осиx

ylabel(‘Напряжение’) % Метка по осиy

legend(‘АЧХ системы‘) % Вывод поясняющей надписи

axis() % Установка масштабов по осямxи y

xlim() % Установка масштаба по осиx

ylim() % Установка масштаба по осиy

figure(n) % Устанавливает фигуру (окно)nактивной

subplot(r,c,n) % Разбивает графическое окно наr * cподокон иsubplot(rcn) % устанавливает подокноn в качестве активного.

gridon% к графику добавляется сетка

holdon% позволяет построить несколько графиков в окне

holdoff% отменяетholdonдля текущего графика

text% позволяет разместить текст на графике

zoomon/off% включение / выключение возможности увеличения % фрагментов графика с использованием

% левой и правой кнопок мыши

Простые примеры:

>> x=0:0.01:2*pi;

>> y=sin(x);

Построение графика зависимости функции yот индекса массива (номера элемента)x

>> plot(y)

Рис.4.

Построение графика зависимости y(x)

>> plot(x,y)

Рис.5.

Несколько пар аргументов в функции plot()позволяют построить несколько графиков в одном графическом окне. При этомMATLABдля каждого графика использует отдельный цвет линии.

Пример.

>> x = 0:pi/100:2*pi;

>> y = sin(x);

>>y2 = sin(x-.5);

>>y3 = sin(x+.5);

>>plot(x,y,x,y2,x,y3)

>> legend(‘sin(x)’,’sin(x-.5)’,’sin(x+.5)’)

Рис. 6

Цвет, тип линии и обозначение (тип) точек являются аргументами функции plot, соответствующие справочные сведения можно получить с помощью команды вызова справкиhelp plot .

Для разбиения графического окна на подокна служит команда plot(m,n,p)илиplot(mnp),в которойm– число строк,n- число столбцов,p- номер подокна. Пример построения графика функциив двух подокнах с помощью функцииplot()в одном случае и функцииstem()в другом с разными пределами по оси аргумента (рис. 7):

t=linspace(0, 8, 401); % вычисление 402 точек в интервале

x = t.*exp(-t).*cos(2*pi*4*t);

subplot(2,1,1)

plot(t,x)

subplot(2,1,2)

stem(t,x)

axis( )

Рис. 7

Другой пример

Fs=1024; % Частота отсчетов

f1=50; % частота гармоники

f2=60;

N=512; % число отсчетов сигнала

n=0:(N-1);

t=0:1/Fs:(N-1)/Fs; % вектор времени

% генерирование сигнала

x=cos(2*pi*f1*t)+0.5*cos(2*pi*f2*t)+randn(1,length(t));

plot(t,x), grid % график сигнала

title(‘Сигнал’)

xlabel(‘Время, c’)

Рис. 8

Для добавления графиков к уже существующим применяют команду hold on

t=0:0.01:1;

x1=sin(2*pi*4*t);

x2=cos(2*pi*4*t);

plot(t,x1,’r’)

hold on

plot(t,x2,’g’)

plot(t,x1+x2, ‘—b’)

legend(‘x1=sin(2*pi*4*t)’, ‘x2=cos(2*pi*4*t)’,’x1+x2′)

Рис. 9

Для отмены действия hold on (освобождения окна графики) используют hold off.

Пример построения графика в полярной системе координат

>> t=0:pi/100:2*pi;

>> polar(t,cos(6*t))

Рис. 10

В окне графики MATLABпозволяют выполнять разнообразную настройку графического окна и его объектов с помощью меню или панели инструментов (рис.9).

В окне редактора или с помощью контекстного меню по правой кнопке мыши производятся необходимые установки (цвет, размер, тип, толщина линии и др.) объекта окна графики.

Возможности для подобной интерактивной настройки графики — очень широкие. В первую очередь они обеспечиваются кнопкой Edit Plot инструментальной панели окна.

Рис. 11

Рис. 12

Рис.13.

Трехмерная графика MATLAB– очень развитая и многообразная, сама по себе очень важная часть программы, но в курсе «Сигналы и системы» она используется редко.

Некоторые из команд построения 3D– графиков

>> plot3(…) % строит аксонометрическое изображение 3D-поверхности

>> mesh(…) % строит трехмерные поверхности со специфицированной

% окраской

Пример.

>> =meshgrid();

>> Z=X.^2+Y.^2;

>> mesh(X,Y,Z)

Рис.14.

Пример построения графика передаточной функции системы второго порядка с передаточной функцией .

Нули и полюса системы :

Глава 3. Работа с графиками в MatLab

MatLab предоставляет богатый инструментарий по визуализации данных. Используя внутренний язык, можно выводить двумерные и трехмерные графики в декартовых и полярных координатах, выполнять отображение изображений с разной глубиной цвета и разными цветовыми картами, создавать простую анимацию результатов моделирования в процессе вычислений и многое другое.

Функция plot

Рассмотрение возможностей MatLab по визуализации данных начнем с двумерных графиков, которые обычно строятся с помощью функции plot(). Множество вариантов работы данной функции лучше всего рассмотреть на конкретных примерах.

Предположим, что требуется вывести график функции синуса в диапазоне от 0 до . Для этого зададим вектор (множество) точек по оси Ox, в которых будут отображаться значения функции синуса:

x = 0:0.01:pi;

В результате получится вектор столбец со множеством значений от 0 до и с шагом 0,01. Затем, вычислим множество значений функции синуса в этих точках:

y = sin(x);

и выведем результат на экран

plot(x,y);

В результате получим график, представленный на рис. 3.1.

Представленная запись функции plot() показывает, что сначала записывается аргумент со множеством точек оси Ох, а затем, аргумент со множеством точек оси Oy. Зная эти значения, функция plot() имеет возможность построить точки на плоскости и линейно их интерполировать для придания непрерывного вида графика.

Рис. 3.1. Отображение функции синуса с помощью функции plot().

Функцию plot() можно записать и с одним аргументом x или y:

plot(x);
plot(y);

в результате получим два разных графика, представленные на рис. 3.2.

Анализ рис. 3.2 показывает, что в случае одного аргумента функция plot() отображает множество точек по оси Oy, а по оси Оx происходит автоматическая генерация множества точек с единичным шагом. Следовательно, для простой визуализации вектора в виде двумерного графика достаточно воспользоваться функцией plot() с одним аргументом.

Для построения нескольких графиков в одних и тех же координатных осях, функция plot() записывается следующим образом:

x = 0:0.01:pi;
y1 = sin(x);
y2 = cos(x);
plot(x,y1,x,y2);

Результат работы данного фрагмента программы представлен на рис. 3.3.

а) б)

Рис. 3.2. Результаты работы функции plot() с одним аргументом:

а – plot(x); б – plot(y).

Рис. 3.3. Отображение двух графиков в одних координатных осях.

Аналогичным образом можно построить два графика, используя один аргумент функции plot(). Предположим, что есть два вектора значений

y1 = sin(x);
y2 = cos(x);

которые требуется отобразить на экране. Для этого объединим их в двумерную матрицу

в которой столбцы составлены из векторов y1 и y2 соответственно. Такая матрица будет отображена функцией

plot(); % апострофы переводят вектор-строку
% в вектор-столбец

в виде двух графиков (рис. 3.4).

Рис. 3.4. Отображение двумерной матрицы в виде двух графиков.

Два вектора в одних осях можно отобразить только в том случае, если их размерности совпадают. Когда же выполняется работа с векторами разных размерностей, то они либо должны быть приведены друг к другу по числу элементов, либо отображены на разных графиках. Отобразить графики в разных координатных осях можно несколькими способами. В самом простом случае можно создать два графических окна и в них отобразить нужные графики. Это делается следующим образом:

x1 = 0:0.01:2*pi;
y1 = sin(x1);

x2 = 0:0.01:pi;
y2 = cos(x2);

plot(x1, y1); % рисование первого графика
figure; % создание 2-го графического окна
plot(x2, y2); % рисование 2-го графика во 2-м окне

Функция figure, используемая в данной программе, создает новое графическое окно и делает его активным. Функция plot(), вызываемая сразу после функции figure, отобразит график в текущем активном графическом окне. В результате на экране будут показаны два окна с двумя графиками.

Неудобство работы приведенного фрагмента программы заключается в том, что повторный вызов функции figure отобразит на экране еще одно новое окно и если программа будет выполнена дважды, то на экране окажется три графических окна, но только в двух из них будут актуальные данные. В этом случае было бы лучше построить программу так, чтобы на экране всегда отображалось два окна с нужными графиками. Этого можно достичь, если при вызове функции figure в качестве аргумента указывать номер графического окна, которое необходимо создать или сделать активным, если оно уже создано. Таким образом, вышеприведенную программу можно записать так.

x1 = 0:0.01:2*pi;
y1 = sin(x1);
x2 = 0:0.01:pi;
y2 = cos(x2);
figure(1); %создание окна с номером 1
plot(x1, y1); % рисование первого графика
figure(2); % создание графического окна с номером 2
plot(x2, y2); % рисование 2-го графика во 2-м окне

При выполнении данной программы на экране всегда будут отображены только два графических окна с номерами 1 и 2, и в них показаны графики функций синуса и косинуса соответственно.

В некоторых случаях большего удобства представления информации можно достичь, отображая два графика в одном графическом окне. Это достигается путем использования функции subplot(), имеющая следующий синтаксис:

subplot(<число строк>, <число столбцов>, <номер координатной оси>)

Рассмотрим пример отображения двух графиков друг под другом вышеприведенных функций синуса и косинуса.

x1 = 0:0.01:2*pi;
y1 = sin(x1);
x2 = 0:0.01:pi;
y2 = cos(x2);
figure(1);
subplot(2,1,1); % делим окно на 2 строки и один столбец
plot(x1,y1); % отображение первого графика
subplot(2,1,2); % строим 2-ю координатную ось
plot(x2,y2); % отображаем 2-й график в новых осях

Результат работы программы показан на рис. 3.5.

Аналогичным образом можно выводить два и более графиков в столбец, в виде таблицы и т.п. Кроме того, можно указывать точные координаты расположения графика в графическом окне. Для этого используется параметр position в функции subplot():

subplot(‘position’, );

где left – смещение от левой стороны окна; bottom – смещение от нижней стороны окна; width, height – ширина и высота графика в окне. Все эти переменные изменяются в пределах от 0 до 1.

Рис. 3.5. Пример работы функции subplot.

Ниже представлен фрагмент программы отображения графика функции синуса в центре графического окна. Результат работы показан на рис. 3.6.

x1 = 0:0.01:2*pi;
y1 = sin(x1);
subplot(‘position’, );
plot(x1,y1);

В данном примере функция subplot() смещает график на треть от левой и нижней границ окна и рисует график с шириной и высотой в треть графического окна. В результате, получается эффект рисования функции синуса по центру основного окна.

Таким образом, используя параметр position можно произвольно размещать графические элементы в плоскости окна.

Рис. 3.6. Пример работы функции subplot с параметром position.

Оформление графиков

Пакет MatLab позволяет отображать графики с разным цветом и типом линий, показывать или скрывать сетку на графике, выполнять подпись осей и графика в целом, создавать легенду и многое другое. В данном параграфе рассмотрим наиболее важные функции, позволяющие делать такие оформления на примере двумерных графиков.

Функция plot() позволяет менять цвет и тип отображаемой линии. Для этого, используются дополнительные параметры, которые записываются следующим образом:

plot(<x>, <y>, <’цвет линии, тип линии, маркер точек’>);

Обратите внимание, что третий параметр записывается в апострофах и имеет обозначения, приведенные в таблицах 3.1-3.3. Маркеры, указанные ниже записываются подряд друг за другом, например,

‘ko’ – на графике отображает черными кружками точки графика,
‘ko-‘ – рисует график черной линией и проставляет точки в виде кружков.

Табл. 3.1. Обозначение цвета линии графика

Маркер Цвет линии
c голубой
m фиолетовый
y желтый
r красный
g зеленый
b синий
w белый
k черный

Табл. 3.2. Обозначение типа линии графика

Маркер Цвет линии
непрерывная
штриховая
: пунктирная
-. штрих-пунктирная

Табл. 3.3. Обозначение типа точек графика

Маркер Цвет линии
. точка
+ плюс
* звездочка
o кружок
x крестик

Ниже показаны примеры записи функции plot() с разным набором маркеров.

x = 0:0.1:2*pi;
y = sin(x);
subplot(2,2,1); plot(x,y,’r-‘);
subplot(2,2,2); plot(x,y,’r-‘,x,y,’ko’);
subplot(2,2,3); plot(y,’b—‘);
subplot(2,2,4); plot(y,’b—+’);

Результат работы фрагмента программы приведен на рис. 3.7. Представленный пример показывает, каким образом можно комбинировать маркеры для достижения требуемого результата. А на рис. 3.7 наглядно видно к каким визуальным эффектам приводят разные маркеры, используемые в программе. Следует особо отметить, что в четвертой строчке программы по сути отображаются два графика: первый рисуется красным цветом и непрерывной линией, а второй черными кружками заданных точек графика. Остальные варианты записи маркеров очевидны.

Рис. 3.7. Примеры отображения графиков с разными типами маркеров

Из примеров рис. 3.7 видно, что масштаб графиков по оси Ox несколько больше реальных значений. Дело в том, что система MatLab автоматически масштабирует систему координат для полного представления данных. Однако такая автоматическая настройка не всегда может удовлетворять интересам пользователя. Иногда требуется выделить отдельный фрагмент графика и только его показать целиком. Для этого используется функция axis() языка MatLab, которая имеет следующий синтаксис:

axis( ),

где название указанных параметров говорят сами за себя.

Воспользуемся данной функцией для отображения графика функции синуса в пределах от 0 до :

x = 0:0.1:2*pi;
y = sin(x);
subplot(1,2,1);
plot(x,y);
axis();
subplot(1,2,2);
plot(x,y);
axis();

Из результата работы программы (рис. 3.8) видно, что несмотря на то, что функция синуса задана в диапазоне от 0 до , с помощью функции axis() можно отобразить как весь график, так и его фрагмент в пределах от 0 до .

Рис. 3.8. Пример работы функции axis()

В заключении данного параграфа рассмотрим возможности создания подписей графиков, осей и отображения сетки на графике. Для этого используются функции языка MatLab, перечисленные в табл. 3.4.

Таблица 3.4. Функции оформления графиков

Название Описание
grid Включает/выключает сетку на графике
title(‘заголовок графика’) Создает надпись заголовка графика
xlabel(‘подпись оси Ox’) Создает подпись оси Ox
ylabel(‘подпись оси Oy’) Создает подпись оси Oy
text(x,y,’текст’) Создает текстовую надпись в координатах (x,y).

Рассмотрим работу данных функций в следующем примере:

Из результата работы данной программы, представленного на рис. 3.9, видно каким образом работают функции создания подписей на графике, а также отображение сетки графика.

Таким образом, используя описанный набор функций и параметров, можно достичь желаемого способа оформления графиков в системе MatLab.

Рис. 3.9. Пример работы функций оформления графика

Рекомендуемые страницы:

Главная | О нас | Обратная связь

Построение графиков функций в MatLab.

Построение графика функции одной переменной.

Построим график функции

, на отрезке .

Вывод графика функции состоит из следующих этапов:

1. Задание вектора значений аргумента x.

Для того чтобы задать вектор, элементы которого, отличаются друг от друга на одинаковую величину (шаг), Используют двоеточие «:». Условно можно записать

x = ,

если шаг равен 1, то его можно не указывать

x = .

Для более точного построения графика функции следует задавать малый шаг при вводе вектора x.

2. Вычисление вектора y значений функции от каждого элемента вектора x.

При этом операции в выражении для функции должны выполняться поэлементно.

3.Вызов команды plot(x, y) для построения графика.

Создадим программу list_6

После выполнения команд на экране появляется окно Figure No. 1 с графиком функции в виде плавной кривой. Окно содержит меню, панель инструментов и область графика.

Оформление графиков.

Команда plot позволяет задать стиль, толщину и цвет линий, а также тип маркера.

Приведем в таблице некоторые свойства линий:

Цвет Тип маркера Тип линий
y желтый точка сплошная
m розовый кружок : пунктирная
c голубой крестик -. штрихпунктирная
r красный + знак «плюс» штриховая
g зеленый * звездочка
b синий s квадрат
w белый d ромб
k черный v треугольник вершиной вниз
^ треугольник вершиной вверх
< треугольник вершиной влево
> треугольник вершиной вправо
p пятиконечная звезда
h шестиконечная звезда

Построим график функции в виде красной пунктирной линии толщиной 3. Для этого внесем изменения в программу list_6


Результатом выполнения программы будет график

Дополнительными элементами оформления графика являются: координатная сетка, подписи к осям, заголовок и легенда.

Сетка наносится командой grid on.

Подписи к осям размещаются при помощи команд xlabel, ylabel.

Заголовок дается командой title. (Для использования русских букв в заголовке, в аргументе команды title следует изменить название шрифта на Courier.)

Команда legend снабжает график информацией о линиях, размещенных на одних осях.

Использование в аргументах команд некоторых математических обозначений в формате TeX позволяет добавлять формулы на график.

Внесем изменения в программу list_6:

В результате выполнения программы получим график

Сравнение нескольких функций можно производить, отобразив их графики на одних осях. Например, построим графики на отрезке графики функций

и .

Текс программы list_7

В результате получим график

Примечание.Третий параметр в команде legend управляет размещением в графическом окне. (0 – система выбирает лучшее месть в поле графика; 1 – легенда размещается в правом верхнем углу, 2 – легенда размещается в левом верхнем углу; 3 – легенда размещается в правом нижнем углу, 4 – легенда размещается в левом нижнем углу).

Для расположения нескольких графиков на одних осях можно также использовать команду hold on.

Команда

plot(x, f, x, g)

эквивалентна последовательности команд

plot(x, f)

hold on

plot(x, g).

Внесем изменения в программу list_7

Результат работы программы:

Для размещения нескольких осей в одном графическом окне используется команда

subplot, которая располагает графики в виде матрицы и используется с тремя параметрами: subplot(i, j, n), здесь iиj – число подграфиков по вертикали и горизонтали, а n – номер подграфика, который надо сделать текущим.

Например, построим график табличной функции

0,298 0,303 0,310 0,317 0,323 0,330
3,255 3,176 3,121 3,049 2,988 2,920

и функции на отрезке в одном графическом окне и разных осях.

Программа list_8.

Результат работы программы:

Построение поверхностей в MATLAB.

Пусть требуется построить график функции

на области определения .

Алгоритм построения включает этапы:

1. Разбиение области определения равномерной сеткой и создание матрицы с координатами узлов сетки.

Сетка генерируется с помощью команды meshgrid:

= meshgrid(-2:0.25:2,-2:0.25:2);

2. Вычисление значения функции в узлах сетки.

Z = X.*exp(-X.^2 -Y.^2);

3. Использование одной из графических функций MATLAB – mesh или surf.

Для отображения каркасной поверхности используется функция mesh:

mesh(X, Y, Z)

Цвет линий поверхности соответствует значениям функции.

Функция surf строит каркасную поверхность и заливает каждую клетку определенным цветом, зависящим от значения функции в точках, соответствующим углам клетки:

surf(X,Y,Z)

Команда colormap меняет палитру графического окна.

Таблица палитры цветов.

Палитра Изменение цвета
autumn Плавное изменение: красный – оранжевый — желтый
bone Серый с легким оттенком синего
colorcube Каждый цвет меняется от темного к яркому
cool Оттенки голубого и пурпурного цветов
copper Оттенки медного цвета
flag Циклическое изменение: красный – белый — синий — черный
gray Оттенки серого
hot Плавное изменение: черный — красный – оранжевый – желтый — белый
hsv Плавное изменение, цвета радуги
jet Плавное изменение: синий – голубой – зеленый – желтый — красный
pink Похожа на палитру gray. но с легким оттенком коричневого
prism Циклическое изменение: красный – оранжевый желтый – зеленый – синий – фиолетовый
spring Оттенки пурпурного и желтого
summer Оттенки зеленого и желтого
vga Палитра Windows из шестнадцати цветов
white Один белый цвет
winter Оттенки синего и зеленого

Например, введем команду

colormap(‘cool’).

В результате получаем

Дополнительно, с помощью команды

hidden off можно сделать каркасную поверхность видимой;

shading flat можно убрать каркасные линии;

shading interp можно изобразить поверхность, плавно залитую цветом;

colorbar можно вывести рядом с графиком столбик, устанавливающий соответствие между цветом и значением функции.

Дополнительные элементы оформления графика являются такие как подписи к осям, заголовок и легенда выполняются так же как и при построении графиков функций одной переменной (см. Практика_MATLAB_3). Удаление координатной сетки выполняется командой grid off.

М-функции.

Если в вычислениях часто используется некоторая функция , то имеет смысл один раз написать файл-функцию, а потом вызывать её, всюду, где это необходимо.

Например, создадим функцию

.

Для этого открываем новый М-файл и набираем текст

Слово function в первой строке определяет, что данный файл содержит файл-функцию; myfun – имя функции; x – входной аргумент; f – выходной аргумент. Затем идет тело функции, которое состоит, в данном примере, из одной строки. Вообще, тело функции может состоять из нескольких строк, важно, чтобы окончательное значение функции записывалось в f.

В конце ставиться «;» для подавления вывода лишней информации на экран.

Сохраняем файл под именем функции myfun.

Теперь созданную функцию можно использовать так же, как и встроенные функции sin, cos, и другие. Например, наберем в командной строке

>> y = myfun(1.3)

y =

При создании функции использовались поэлементные операции, следовательно, её входным аргументом могут быть векторы, например, наберем в командной строке:

>> x=

x =

1.3 5.2

>> y = myfun(x)

y =

0.51149 -13.552

Построим график этой функции на отрезке .

Программа list_11

Результат работы программы – график функции

Интегрирование функций.

Вычисление определенных интегралов

В MatLab существует встроенная функция, реализующая алгоритм метода Симпсона с автоматическим выбором шага

I = quad(‘имя функции’, а, b)

где

имя функции – имя М-функции, задающей подынтегральное выражение;

а, b – пределы интегрирования,

I – значение интеграла.

Для повышения точности вычислений следует задать дополнительный четвертый аргумент e – точность метода:

I = quad(‘name’, а, b, e).

Например, требуется вычислить определенный интеграл

.

Сначала создадим файл-функцию, для вычисления подынтегрального выражения и сохраним её под именем fint

Затем в командном окне выполним команду

I = quad(‘fint’, -1, 1)

В результате получим значение интеграла

I =

Вычисление интегралов от функций, заданных в виде таблицы.

Пусть функция задана таблицей своих значений в точках , ( – четное) с постоянным шагом :

………………..
………………..

Формула Симпсона для численного интегрирования имеет вид

.

Напишем М-функцию f_simps, реализующую алгоритм метода Симпсона в MatLab

Здесь: F – вектор значений табличной функции, M – четное число интервалов на которые разделён отрезок , h – шаг таблицы.

Например, для функции создадим таблицу, разделяя отрезок на 10 интервалов и для полученной табличной функции вычислим приближенное значение интеграла , используя функцию f_simps.

Выполняем в команды:

M = 10;

a = -1;

b = 1;

h = (b-a)/M;

x = a:h:b;

F = exp(-x).*sin(x);

Int = f_simps(F, M, h)

Int =

Вычисление двойных интегралов в MATLAB.

В MATLAB определена встроенная функция для приближенного вычисления двойных интегралов dblquad. Сначала следует написать файл-функцию для вычисления подынтегрального выражения а затем вызвать функцию в виде

dblquad(’name’,a,b,c,d)

где

name – имя М-функции, задающей подынтегральное выражение;

a,b, – верхний и нижний пределы интегрирования внутреннего интеграла по ;

c,d – верхний и нижний пределы интегрирования внешнего интеграла по ;

3.2. Оформление графиков

Пакет MatLab позволяет отображать графики с разным цветом и типом линий, показывать или скрывать сетку на графике, выполнять подпись осей и графика в целом, создавать легенду и многое другое. В данном параграфе рассмотрим наиболее важные функции, позволяющие делать такие оформления на примере двумерных графиков.

Функция plot() позволяет менять цвет и тип отображаемой линии. Для этого, используются дополнительные параметры, которые записываются следующим образом:

plot(<x>, <y>, <’цвет линии, тип линии, маркер точек’>);

Обратите внимание, что третий параметр записывается в апострофах и имеет обозначения, приведенные в таблицах 3.1-3.3. Маркеры, указанные ниже записываются подряд друг за другом, например,

‘ko’ – на графике отображает черными кружками точки графика,
‘ko-‘ – рисует график черной линией и проставляет точки в виде кружков.

Табл. 3.1. Обозначение цвета линии графика

Маркер

Цвет линии

голубой

фиолетовый

желтый

красный

зеленый

синий

белый

черный

Табл. 3.2. Обозначение типа линии графика

Маркер

Цвет линии

непрерывная

штриховая

пунктирная

штрих-пунктирная

Табл. 3.3. Обозначение типа точек графика

Маркер

Цвет линии

точка

+

плюс

*

звездочка

кружок

крестик

Ниже показаны примеры записи функции plot() с разным набором маркеров.

x = 0:0.1:2*pi;
y = sin(x);
subplot(2,2,1); plot(x,y,’r-‘);
subplot(2,2,2); plot(x,y,’r-‘,x,y,’ko’);
subplot(2,2,3); plot(y,’b—‘);
subplot(2,2,4); plot(y,’b—+’);

Результат работы фрагмента программы приведен на рис. 3.7. Представленный пример показывает, каким образом можно комбинировать маркеры для достижения требуемого результата. А на рис. 3.7 наглядно видно к каким визуальным эффектам приводят разные маркеры, используемые в программе. Следует особо отметить, что в четвертой строчке программы по сути отображаются два графика: первый рисуется красным цветом и непрерывной линией, а второй черными кружками заданных точек графика. Остальные варианты записи маркеров очевидны.

Рис. 3.7. Примеры отображения графиков с разными типами маркеров

Из примеров рис. 3.7 видно, что масштаб графиков по оси Ox несколько больше реальных значений. Дело в том, что система MatLab автоматически масштабирует систему координат для полного представления данных. Однако такая автоматическая настройка не всегда может удовлетворять интересам пользователя. Иногда требуется выделить отдельный фрагмент графика и только его показать целиком. Для этого используется функция axis() языка MatLab, которая имеет следующий синтаксис:

axis( ),

где название указанных параметров говорят сами за себя.

Воспользуемся данной функцией для отображения графика функции синуса в пределах от 0 до :

x = 0:0.1:2*pi;
y = sin(x);
subplot(1,2,1);
plot(x,y);
axis();
subplot(1,2,2);
plot(x,y);
axis();

Из результата работы программы (рис. 3.8) видно, что несмотря на то, что функция синуса задана в диапазоне от 0 до , с помощью функции axis() можно отобразить как весь график, так и его фрагмент в пределах от 0 до .

Рис. 3.8. Пример работы функции axis()

В заключении данного параграфа рассмотрим возможности создания подписей графиков, осей и отображения сетки на графике. Для этого используются функции языка MatLab, перечисленные в табл. 3.4.

Таблица 3.4. Функции оформления графиков

Название

Описание

Включает/выключает сетку на графике

title(‘заголовок графика’)

Создает надпись заголовка графика

xlabel(‘подпись оси Ox’)

Создает подпись оси Ox

ylabel(‘подпись оси Oy’)

Создает подпись оси Oy

text(x,y,’текст’)

Создает текстовую надпись в координатах (x,y).

Рассмотрим работу данных функций в следующем примере:

Из результата работы данной программы, представленного на рис. 3.9, видно каким образом работают функции создания подписей на графике, а также отображение сетки графика.

Таким образом, используя описанный набор функций и параметров, можно достичь желаемого способа оформления графиков в системе MatLab.

Рис. 3.9. Пример работы функций оформления графика