Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Xlabel('Значения x'); ylabel('Значения функции'), grid
Рисунок. Результат применения функций title, xlabel, ylabel
t=0: 0.1: 50; x=4*exp(-0.05*t).*sin(t); y=0.2*exp(-0.1*t).*sin(2*t); plot(x, y); title('Параметрическая функция'); Xlabel('x'); ylabel('y'); grid
Рисунок. График параметрически заданной функции
Система MATLAB предоставляет очень удобную возможность ― не указывать аргумент функции при построении ее графика. В таком случае в качестве аргумента система принимает номер элемента вектора, график которого строится. Например, построим график вектора х (рис.7): x=[3 5 2 7 3 9 1]; plot(x); title('График вектора x'); Xlabel('Номер элемента'); ylabel('Значение элемента'); grid
Если функция задана своими значениями при дискретных значениях аргумента и неизвестно, как она может изменяться в промежутках между значениями аргумента, удобнее представлять ее график в виде отдельных вертикальных линий для любого из заданных значений аргумента. Это можно сделать, применяя процедуру stem, обращение к которой аналогично обращению к процедуре plot (рис.):
stem(x); title('График вектора x'); Xlabel('Номер элемента'); ylabel('Значение элемента')
Рисунок 9. График, построенный с помощью процедуры stem
Чрезвычайно полезной для нас является функция hist (построение графика гистограммы заданного вектора). Стандартное обращение к ней имеет вид: Hist(y, x)
где y ― вектор, гистограмму которого нужно построить; x ― вектор, элементы которого определяют интервал изменения первого вектора. Эта функция осуществляет две операции: 1) подсчитывает количество элементов вектора y, значения которых попадают внутрь соответствующего диапазона, указанного вектором x; 2) строит столбцовую диаграмму подсчитанных чисел элементов вектора y как функцию диапазонов, указанных вектором x. В качестве примера построим гистограмму вектора у, элементы которого распределены по нормальному закону с математическим ожиданием 0 и среднеквадратическим отклонением 1. Общее количество элементов вектора у 10000 (рис.10):
x=-2.5: 0.05: 2.5; y=randn(10000, 1); hist(y, x); title('Гистограмма нормального распределения'); Xlabel('x'); ylabel('Вероятность x'); grid
Рисунок 10. Гистограмма функции randn
MATLAB имеет несколько функций, которые позволяют строить графики в логарифмическом масштабе. К примеру, функция logspace с обращением
x=logspace(d1, d2, n)
формирует вектор-строку х, содержащую n равноотстоящих в логарифмическом масштабе друг от друга значений в диапазоне от 10 до 10. Функция loglog выводит графики, которые по обеим осям строятся в логарифмическом масштабе. Построение графиков, в которых используется логарифмический масштаб только по одной из координатных осей, осуществляется с помощью процедур semilogx (вертикальная ось) и semilogy (горизонтальная ось). Обращение к этим процедурам аналогично обращению к функции plot. Для примера построим амплитудно-частотную и фаза-частотную характеристики фильтра нижних частот (рис.), имеющего коэффициент передачи вида: Как известно, коэффициент передачи, представляющий из себя комплексное число, равен K(jω )=K(ω )exp(φ (ω )), где K(ω ) ― амплитудно-частотная характеристика (модуль комплексного числа), φ (ω ) ― фаза-частотная характеристика (аргумент комплексного числа). Воспользуемся известными нам функциями:
f=1: 10^4; w=2*pi*f; R=1000; C=10^-5; K=1./(1+j*w*R*C); ACH=abs(K); FCH=angle(K)*180/pi; Subplot(2, 1, 1); semilogx(f, ACH); title('Амплитудно-частотная характеристика'); xlabel('Частота (Гц)'); ylabel('Отношение амплитуд'); grid; subplot(2, 1, 2); semilogx(f, FCH); title('Фаза-частотная характеристика'); xlabel('Частота (Гц)'); ylabel('Фаза (град)'); grid
Рисунок 11. АЧХ и ФЧХ фильтра нижних частот
В этом примере была использована функция subplot. Она необходима, если требуется построить несколько графиков в одном графическом окне, но на разных графических полях. Обращение к ней имеет вид:
Subplot(m, n, p).
Здесь m указывает, на сколько частей разделяется графическое окно по вертикали, n, соответственно, ― по горизонтали, а p является номером подокна, в котором будет строиться график. При этом подокна нумеруются слева направо построчно сверху вниз. Если необходимо изменить режим масштабирования, можно воспользоваться функцией axis: axis([xmin xmax ymin ymax]) устанавливает жесткие границы поля графика в единицах величин, которые откладываются по осям, axis('auto') приводит масштабы по осям по умолчанию, axis('ij') перемещает начало отсчета в левый верхний угол (матричная система координат), axis('xy') возвращает декартову систему координат с началом отсчета в левом нижнем углу графика, axis('square') устанавливает одинаковый диапазон изменения переменных по осям графика, axis('equal') обеспечивает одинаковый масштаб по осям графика. Команда text(x, y, < 'текст'> ) позволяет расположить указанный текст в поле графика, при этом начало текста помещается в точку с координатами х и у. Но не всегда удается указать «удобные» координаты, поэтому используют команду gtext('текст'), в результате вызова которой в активном графическом окне появляется перекрестие. Перемещение перекрестия с помощью мыши позволяет указать место начала вывода указанного текста. Чтобы создать несколько графических окон, в каждом из которых расположены соответствующие графики, можно воспользоваться командой figure. Эта команда создает новое графическое окно, оставляя предыдущие. Наконец, для того чтобы несколько последовательно вычисленных графиков были изображены в графическом окне в одном стиле, можно использовать команду hold on. Команда hold off выключает режим сохранения графического окна, установленного предшествующей командой. Для примера построим в одном графическом поле несколько функций Бесселя первого рода различных порядков (рис.12):
x=0: 0.1: 20; y1=besselj(1, x); y2=besselj(2, x); y3=besselj(3, x); figure; hold on; plot(x, y1, x, y2, x, y3); grid; title('Функции Бесселя первого рода'); xlabel('x'); ylabel('Значение функции'); |
Последнее изменение этой страницы: 2016-05-03; Просмотров: 2562; Нарушение авторского права страницы