Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Отчет по лабораторонй работе №4

.docx
Скачиваний:
44
Добавлен:
03.10.2022
Размер:
443.05 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

Федеральное государственное бюджетное образовательное

учреждение высшего образования

«Санкт-Петербургский государственный университет телекоммуникаций

им. проф. М. А. Бонч-Бруевича»

_____________________________________________________________________________

Кафедра радиосистем и обработки сигналов

Дисциплина «Прикладные пакеты моделирования»

Лабораторная работа № 4

Средства графики

Цель работы

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

ВЫПОЛНЕНИЕ РАБОТЫ

  1. Построение двумерного графика.

>> x=0:pi/8:8*pi;

>> y1=sin(x);

>> plot(x,y1)

>> plot(x,y1)

>> grid

>> xlabel('x')

Пояснения

  • Функция plot.

  • Текущий график выводится в текущее графическое окно Figure, первый — в окно Figure 1. По умолчанию новый график выводится в то же окно, при этом предыдущий график автоматически удаляется.

  • Grid и xlabel('') .

  1. Построение нескольких двумерных графиков на одних координатных осях.

>> y2=0.5*sin(x);

>> y3=0.5*cos(x);

>> hold on

>> plot(x,y1,'c')

>> plot(x,y3,'r')

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

>> legend('sin(x)','0.5*cos(x)','0.5*sin(x)')

>> title('Functions y1 y2 y3')

>> ylabel('axis y')

Пояснения

  • Вывод в текущее графическое окно Figure нескольких графиков на одних координатных осях выполняется по команде: hold on.

  • Функция plot.

  • Сохраняется.

  • Функция ylabel('') для вывода обозначения оси ординат, title('') для вывода заголовка, legend('legend1','legend2',…) для вывода легенды.

3. Построение независимых графиков в одном окне с его разбиением на отдельные поля.

>> figure('Name','Graph2D','NumberTitle','off')

>> subplot(3,1,1)

>> plot(x,y1)

>> grid

>> title('y1')

>> xlabel('x')

>> ylabel('y')

>> subplot(3,1,2)

>> plot(x,y2)

>> grid

>> title('y2')

>> xlabel('x')

>> ylabel('y')

>> subplot(3,1,3)

>> plot(x,y3)

>> grid

>> title('y3')

>> xlabel('x')

>> ylabel('y')

Пояснения

  • Вывод графика в отдельном графическом окне, имя которого присваивается пользователем, выполняется с помощью функции: figure('Name','','NumberTitle','off').

  • Разбиение текущего графического окна Figure на отдельные поля для вывода независимых графиков выполняется с помощью функции: subplot(m,n,p) где: m  n — размер матрицы графического окна: m строк и n столбцов; p — порядковый номер поля выводимого графика, считая по строкам слева направо.

4. Построение графика последовательности чисел.

>> figure('Name','Sequence1','NumberTitle','off')

>> stem(x,y2,'-ms')

>> grid

>> figure('Name','Sequence2','NumberTitle','off')

>> stem(x,y2,'fill','-rs','MarkerSize',6,'LineWidth',2,'MarkerEdgeColor','g','MarkerFaceColor','y')

>> grid

Пояснения

  • Функция stem выводит графики последовательностей чисел.

  • 'fill' — необязательный параметр, указывающий на закрашивание маркеров.

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

5. Построение графиков в полулогарифмическом и логарифмическом масштабах.

>> y4=sqrt(x);

>> figure('Name',' Logarithms axes','NumberTitle','off')

>> subplot(2,1,1)

>> semilogx(x,y4)

>> logspace(0,4,100);

>> grid

>> subplot(2,1,2)

>> loglog(x,y4)

>> grid

Пояснения

  • Диапазон по оси абсцисс в логарифмическом масштабе можно задавать с помощью функции: logspace(d1,d2[,n]) где: d1, d2 — начальное 10d1 и конечное 10d2 значения диапазона; n — количество точек в логарифмическом масштабе, по умолчанию равно 50.

  • Функция semilogx выводит графики в логарифмическом масштабе по оси абсцисс и линейном — по оси ординат.

  • Функция loglog выводит графики в логарифмическом масштабе по осям абсцисс и ординат.

6. Построение гистограмм.

>> figure('Name','Histogram','NumberTitle','off')

>> y5=randn(1,1e3);

>> hist(y5)

Пояснения

  • Функция hist выводит гистограммы hist(y,x) где y, x — векторы одинаковой длины.

  • Гистограмма отображает число попаданий значений элементов вектора y в интервалы, центры которых заданы элементами вектора x В отсутствии вектора x для значений элементов вектора y по умолчанию выбирается 10 интервалов, и гистограмма отображает число попаданий значений элементов вектора y в центры данных интервалов.

7. Построение трехмерного графика

[x,y]=meshgrid(-pi:pi/32:pi);

z=sin(x)+cos(y);

figure('Name','Graph3D','NumberTitle','off')

mesh(x,y,z),colormap('cool'),colorbar

grid

Пояснения

  • Построение трехмерных графиков начинается с формирования сетки на плоскости XOY с помощью вспомогательных матриц X и Y по известным векторам x и y соответственно, где X — матрица, строки которой — копии вектора x, а Y — матрица, столбцы которой — копии вектора y. Матрицы X и Y должны иметь одинаковые размеры: количество строк каждой из них равно длине вектора y, а столбцов — длине вектора x. Матрицы X и Y формируются с помощью функции: [X,Y] = meshgrid(x,y) Если векторы x и y одинаковы, то допускается короткий формат: [X,Y] = meshgrid(x).

  • Функция plot3.

  • Палитра цветов задается с помощью функции: сolormap.

  • Вывод на поле графика шкалы цветов, устанавливающей соответствие со значениями функции, выполняется по команде: colorbar.

Выводы:

  • Изучили графический инструментарий MATLAB.

  • Овладели навыками построения двумерных и трехмерных графиков.

Задание на самостоятельную работу

1С. Построение двумерного графика. Для аргумента x , заданного на интервале x  2π;2π, вывести график функции y x x   sin с помощью функции plot, вывести заголовок и легенду, обозначить оси абсцисс и ординат.

>> x=-2*pi:2*pi

x =

Columns 1 through 11

-6.2832 -5.2832 -4.2832 -3.2832 -2.2832 -1.2832 -0.2832 0.7168 1.7168 2.7168 3.7168

Columns 12 through 13

4.7168 5.7168

>> y=x+sin(x);

>> plot(x,y)

>> xlabel('x')

>> ylabel('y')

>> title('y')

>> legend('x+sin(x)')