Лабораторные 2023г / лаба 4
.docxФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
Федеральное государственное бюджетное образовательное
учреждение высшего образования
«Санкт-Петербургский государственный университет телекоммуникаций
им. проф. М. А. Бонч-Бруевича»
_____________________________________________________________________________
Кафедра радиосистем и обработки сигналов
Дисциплина «Прикладные пакеты моделирования»
Лабораторная работа № 4
Средства графики
Выполнили: ст. гр. РТ-22
Проверил: к.т.н. доцент Леонюк А.С.
_____________________
Санкт-Петербург
2023
ВЫПОЛНЕНИЕ РАБОТЫ
Построение двумерного графика
>> x=[0:pi/8:8*pi];
>> y=sin(x);
>> plot(x,y)
>> grid
>> xlabel('os"abciss')
Для вывода графика используется функция plot(_).
График выводится в окно Figure. По умолчанию новый график выводится в то же окно, при этом предыдущий график автоматически удаляется.
Функции для нанесения координатной сетки и обозначения оси абсцисс: grid и xlabel(_).
Построение нескольких двумерных графиков на одних координатных осях
>> y2=(sin(x))./x;
>> y3=0.5*cos(x);
>> hold on
>> plot(x,y,'r')
>> plot(x,y2,'g')
>> plot(x,y3,'b')
>> ylabel('axis y')
>> title('Functions y1 y2 y3')
>> legend('sin(x)','sin(x)/x','0.5cos(x)')
Команда, которая обеспечивает вывод нескольких графиков на одних координатных осях – hold on.
Разметка и названия осей сохраняются при добавлении новых графиков
Функция для обозначения оси ординат – ylabel(_)
Для вывода заголовка – title(_)
Для размещения легенды – legend(___)
Построение независимых графиков в одном окне с его разбиением на отдельные поля
>> figure('Name','Graph2D')
>> subplot(3,1,1)
>> plot(x,y)
>> subplot(3,1,2)
>> plot(x,y2)
>> subplot(3,1,3)
>> plot(x,y3)
>> grid
>> subplot(3,1,2)
>> grid
>> subplot(3,1,1)
>> grid
>> xlabel('x')
>> subplot(3,1,2)
>> xlabel('x')
>> subplot(3,1,3)
>> xlabel('x')
>> ylabel('y')
>> subplot(3,1,2)
>> ylabel('y')
>> subplot(3,1,1)
>> ylabel('y')
>> title('Graph1')
>> subplot(3,1,2)
>> title('Graph2')
>> subplot(3,1,3)
>> title('Graph3')
Окно с заданным именем задается с помощью команды Figure(___).
Функция, которая позволяет строить несколько независимых графиков в одном графическом окне – subplot(__).
Построение графика последовательности чисел
>> figure('Name','Sequence1')
>> stem(x,y2)
>> grid
>> figure('Name','Sequence2')
>> stem(x,y2,'fill','y','LineWidth',2,'MarkerSize',6,'MarkerEdgeColor','r','MarkerFaceColor','g')
>> grid
Функция для вывода последовательностей чисел – stem(_)
'fill' — параметр, указывающий на закрашивание маркеров.
Параметры группы LineSpec определяют тип и цвет линии графика, а также вид маркеров. В функциях построения графиков значения параметров указываются в апострофах без разделяющих символов в произвольном порядке.
Построение графиков в полулогарифмическом и логарифмическом масштабах
>> x1=logspace(0,4);
>> y4=sqrt(x1);
>> figure('name',' Logarithms axes','numbertitle','off')
>> subplot(3,1,1)
>> semilogx(x1,y4)
>> grid
>> subplot(3,1,2)
>> semilogy(x1,y4)
>> grid
>> subplot(3,1,3)
>> loglog(x1,y4)
>> grid
Диапазон по оси абсцисс в логарифмическом масштабе можно задавать с помощью функции: logspace(d1,d2[,n]) где: d1, d2 — начальное 10d1 и конечное 10d2 значения диапазона; n — количество точек в логарифмическом масштабе, по умолчанию равно 50
Функция, которая используется для вывода графика в логарифмическом масштабе по оси абсцисс – semilogx(_)
Функция, которая используется для вывода графика в логарифмическом масштабе по оси абсцисс и оси ординат – loglog(_)
Построение гистограмм.
>> figure('name','Histogram','numbertitle','off')
>> y5=randn(1,1000);
>> hist(y5)
Функция, которая используется для построения гистограммы – hist(_).
Гистограмма отображает число попаданий значений элементов вектора y в интервалы, центры которых заданы элементами вектора x В отсутствии вектора x для значений элементов вектора y по умолчанию выбирается 10 интервалов, и гистограмма отображает число попаданий значений элементов вектора y в центры данных интервалов.
Гистограмма отображает плотность вероятности высотой столбцов, чем выше столбец – тем выше вероятность.
Построение трехмерного графика.
>> figure('name','Graph3D','numbertitle','off')
>> x=[-pi:pi/32:pi];
>> y=[-pi:pi/32:pi];
>> [X,Y]=meshgrid(x,y);
>> Z=sin(X)+cos(Y);
>> mesh(Z,X,Y)
>> colormap('cool')
>> colorbar
>> xlabel('x')
>> ylabel('y')
>> zlabel('z')
Построение трехмерных графиков начинается с формирования сетки на плоскости XOY с помощью вспомогательных матриц X и Y по известным векторам x и y соответственно, где X — матрица, строки которой — копии вектора x, а Y — матрица, столбцы которой — копии вектора y. Матрицы X и Y должны иметь одинаковые размеры: количество строк каждой из них равно длине вектора y, а столбцов — длине вектора x. Матрицы X и Y формируются с помощью функции: [X,Y] = meshgrid(x,y)
Функции, которые используется для вывода графика:
plot3 - Трехмерные графики в виде двумерных линий
mesh - Трехмерные сетчатые графики (с автоматическим нанесением координатных сеток).
Surf - Трехмерные сетчатые графики с окрашиванием поверхности (с автоматическим нанесением координатных сеток).
Функция, которая используется для выбора палитры – colormap(_)
Команда, которая используется для вывода шкалы цветов – colorbar(_).
Задание на самостоятельную работу
1) Построение двумерного графика
>> x=[-2*pi:2*pi]
x =
-6.2832 -5.2832 -4.2832 -3.2832 -2.2832 -1.2832 -0.2832 0.7168 1.7168 2.7168 3.7168 4.7168 5.7168
>> y=x+sin(x);
>> plot(x,y)
>> plot(x,y)
>> xlabel('x')
>> ylabel('y')
>> title('MAMAGRAPH')
>> legend('MAMA')
2) Построение двумерных графиков в одном графическом окне на отдельных полях
>> figure
>> y1=sin(x);
>> subplot(3,1,1)
>> plot(x,y1)
>> subplot(3,1,2)
>> y2=sin(abs(x))
y2 =
-0.0000 -0.8415 -0.9093 -0.1411 0.7568 0.9589 0.2794 0.6570 0.9894 0.4121 -0.5440 -1.0000 -0.5366
>> plot(x,y2)
>> plot(x,y2,'r')
>> subplot(3,1,2)
>> subplot(3,1,3)
>> y3=abs(sin(abs(x)))
y3 =
0.0000 0.8415 0.9093 0.1411 0.7568 0.9589 0.2794 0.6570 0.9894 0.4121 0.5440 1.0000 0.5366
>> plot(x,y3)
>> plot(x,y3,'g')
3) Построение трехмерных графиков
>> x=[-pi:pi/32:pi];
y=[-pi:pi/32:pi];
[X,Y]=meshgrid(x,y);
Z=sin(X)+cos(Y);
mesh(Z,X,Y)
colormap('cool')
colorbar
>> subplot(3,1,1)
>> x=[-pi:pi/32:pi];
y=[-pi:pi/32:pi];
[X,Y]=meshgrid(x,y);
Z=sin(X)+cos(Y);
mesh(Z,X,Y)
colormap('cool')
colorbar
>> subplot(3,1,2)
>> x=[-pi:pi/32:pi];
y=[-pi:pi/32:pi];
[X,Y]=meshgrid(x,y);
Z=sin(X)+cos(Y);
plot3(Z,X,Y)
colormap('cool')
colorbar
>> subplot(3,1,3)
>> x=[-pi:pi/32:pi];
y=[-pi:pi/32:pi];
[X,Y]=meshgrid(x,y);
Z=sin(X)+cos(Y);
mesh(Z,X,Y)
colormap('hot')
colorbar
>> colormap('flag')
>> x=[-pi:pi/32:pi];
y=[-pi:pi/32:pi];
[X,Y]=meshgrid(x,y);
Z=sin(X)+cos(Y);
Вывод: Был изучен графический инструментарий MATLAB, также приобретены навыки построения двумерных и трехмерных графиков.