Эксперт
Сергей
Сергей
Задать вопрос
Мы готовы помочь Вам.

1 Цель работы
Изучение команд построения графиков в различных системах координат с целью визуализации результатов вычислений.
Получение практических навыков работы в командном и диало-говом режиме при форматировании внешнего вида графиков.
2 Теоретический материал
В результате вычислений в системе MATLAB зачастую получа-ется большой, трудно анализируемый массив данных. Для наглядной визуализации и анализа этих данных в системе MATLAB предусмот-рен специальный встроенный пакет. Рассмотрим наиболее простые и часто используемые графические возможности.
Графики в декартовой системе координат
Графические объекты, в том числе и графики функций, MATLAB/Octave выводит в специальные графические окна, имена которых обозначаются словом Figure.
Для построения графиков функций в декартовой системе коор-динат служит команда plot(x, y), где координаты точек (x, y) берутся из векторов X и Y соответственно. Отсюда следует, что перед использо-ванием функции построения графиков plot(x, y) эти вектора должны быть сформированы. Например:
% Построить график функции y=sin(x)-cos(x).
>> x=0: 0.1:10; % задаем вектор изменения
% аргумента x от 0 до 10 с шагом 0,1
>> y=sin(x)-cos(x); % задаем вектор функции, которую
% необходимо построить
>> plot(x, y) % строим график функции в графическом окне
При этом в графическом окне автоматически строятся две оси с нанесенными значениями функции и аргумента: абсцисс (ось X) и ор-динат (ось Y); задаются координаты (x, y), которые определяют узло-вые точки функции y(x). Результат выполнения команд изображен на рис. 4.1.

screenshot 42 2

функции, указав способ (стиль) отображения линии и узловых точек при помощи строковой переменной s, которая может включать до трех символов маркеров из табл. 4.1. Строковую переменную s следует за-давать в апострофах, как показано в примере ниже, причем порядок указания маркеров не имеет значения. Отсутствующие маркеры ис-пользуют установки по умолчанию.
При отсутствии указания на цвет линий и точек он выбирается автоматически (белый цвет исключается). Если линий графиков боль-ше шести, то выбор цвета повторяется.
% Построить график функции заданным стилем
>> x=0:0.25:10; % задаем распределение значений x
>> y=sin(x)-cos(x); % задаем функцию, которую необходимо построить
>> plot (x, y, ‘-hk’, ‘LineWidth’,4, ‘MarkerSize’,10) % строим график функции в виде непрерывной линии чёрного цвета
% толщиной 4 пикселя с шестиугольными маркерами размером
% в 10 пикселей в контрольных точках
Результат выполнения команд изображен на рис. 4.2.

screenshot 43 2

Команда plot(x1, y1, s1, x2, y2, s2, …) служит для объединения на одном графике нескольких графиков функций, определив для каждой свой стиль отображения.
% Построить в одном окне графики функций y1=sin(x1)-cos(x1)
% и y2=tg(x2).
>> x1=0:0.1:2;
>> x2=0:0.2:2;
>> y1=sin(x1)-cos(x1);
>> y2=tan(x2);
>> plot(x1,y1,’-hm’,x2,y2,’–sb’)
Результат выполнения команд изображен на рис. 4.3.

screenshot 44 1

Аналогичного результата, но с возможностью управления тол-щиной линий и размером маркера, можно выполнить, если осущест-вить вывод графиков в одно окно раздельно. Для этого после каждого вывода нужно добавлять команду hold on, разрешающую вывод сле-дующего графика в текущее окно:
>> plot(x1,y1,’-hm’,’LineWidth’,4) %построить график с заданием % стиля и ширины линии
>> hold on %разрешить добавление в граф. окно
>> plot(x2,y2,’-sr’,’LineWidth’,2) %построить график с заданием
%стиля и ширины линии
Графики в полярной системе координат
В полярной системе координат любая точка представляется как конец радиус-вектора, исходящего из начала системы координат, ко-торый имеет длину rho и угол phi. Для построения таких графиков используются команды:
polar(phi, rho),
polar(phi, rho, s),
где phi – угол, rho – длина радиус-вектора, s – строковая константа, позволяющая задавать стиль построения графиков, значения которой берутся из табл. 4.1.
% Построить в полярной системе координат график функции r=cos(6φ).
phi=0: pi/60: 2*pi;
r = cos(6*phi);
polar(phi, r)
Результат выполнения команд изображен на рис. 4.4.

screenshot 45 1

Трехмерные графики
Простейшим средством построения графика функции двух пе-ременных z = f(x, y), который представляет собой поверхность, являет-
63
Обработка изображений средствами MATLAB/Octave
_____________________________________________________________
ся
plot3(X, Y, Z),
где X – матрица первых координат сетки точек, Y – матрица вторых координат, Z – матрица значений функции двух переменных. Эта функция строит в системе трехмерных координат точки с координата-ми (x, y, z) и соединяет их отрезками прямых. По аналогии с функцией plot можно использовать строковую переменную s с указанием способа отображения линии и узловых точек.
Перед использованием функции plot3 необходимо сформиро-вать матрицы значений координатной сетки X и Y. Для их получения используется функция
[X, Y] = meshgrid(x, y).
Эта функция получает два одномерных массива (вектора) точек на осях x и y, а возвращает два двумерных массива X и Y. Функция [X, Y] = meshgrid(x) представляет собой упрощенную запись для [X, Y] = meshgrid(x, x).
Нанести на систему координат шкалы в виде сетки можно ко-мандой grid on.
%Построить график 3D-поверхности, описываемой функцией z(x, y)=x2+y3.
[X,Y]=meshgrid([-3:0.5:5]); % формируем прямоугольную сетку координат
Z=X.^2+Y.^3; % задаем функцию
plot3(X, Y, Z); % построить поверхность
grid on % включить отображение шкал в виде сетки
Результат выполнения команд изображен на рис. 4.6. Чем меньше будет шаг координатной сетки, тем более сглаженной будет казаться поверхность.

Более наглядными являются сетчатые графики поверхностей с заданной или функциональной окраской. Для построения сетчатой поверхности, цвет которой меняется в зависимости от значения Z, ис-пользуется функция mesh(z). При этом число узлов сетчатой поверхно-сти определяется размерностью массива Z. Пример рассмотрен ниже.
% Построить график функци z(x, y)=x2+y3.
[X,Y]=meshgrid([-3:0.5:5]);% формируем прямоугольную сетку координат
Z=X.^2+Y.^3; % задаем функцию
mesh(Z) % построить сетчатую поверхность
colormap copper % задаём палитру графика
Результат показан на рис. 4.7.
Особенно наглядное представление о поверхностях дают сетча-тые графики, использующие функциональную закраску ячеек. Такие графики можно построить используя команду surf(X, Y, Z). Результат работы приведенной выше программы после замены команды mesh на surf показан на рис.4.8.

Оформление графиков
Для наглядной визуализации данных и возможности использо-вания их в различных отчётах, в большинстве случаев, не достаточно только вывести данные в виде графиков на экран, а требуется придать им определённый вид. Настроить внешний вида графиков в среде MATLAB/Octave можно используя команды графики или инструменты меню графического окна.
Для масштабирования графиков функций используется команда
axis([Xmin, Xmax, Ymin, Ymax, Zmin, Zmax]).
В данной команде также можно использовать ключевые слова для задания внешнего вида осей (см. табл. 4.2).
Команды для отображения сетки на графике, создания подписей и добавления легенды представлены в табл. 4.3.
Для оформления трёхмерных графиков, кроме команд указан-ных в табл. 4.3, можно использовать команды, изменяющие окраску и вид поверхности (табл. 4.4).

Подготовка к работе
3.1. Ознакомиться с теоретическим материалом и рекомендованной литературой.
3.2. Подготовить ответы на контрольные вопросы.
69
Обработка изображений средствами MATLAB/Octave
_____________________________________________________________
4 Задание на выполнение работы
Организовать ввод данных и вычисления согласно заданиям ниже.
Задание 1
Создать и отладить программу (в виде m-файла) для построения трех графиков функций в одной системе координат, самостоятельно задав шаг и диапазон изменения аргумента. Функцию выбрать из табл. 4.5 согласно варианту.

Задание 2
Создать и отладить программу (в виде m-файла) для построения двух графиков функций в одной полярной системе координат в диапа-зоне изменения аргумента [0…2π]. Функции выбрать из табл. 4.6 со-гласно варианту.

Задание 3
Создать и отладить программу (в виде m-файла) для построения графиков трехмерной поверхности, описываемой функцией согласно варианту из табл. 4.7. Пределы аргументов x и y задать в диапазоне [-10, 10] с шагом 0.5. Предусмотреть вывод на график обозначения осей и заголовка, который должен содержать математическое выраже-ние выводимой функции.
Три варианта оформления графика этой функции вывести в од-ном окне, используя функцию subplot. Подписать каждый график обо-значением функции MATLAB/Octave, которая использовалась для их построения. Используя инструменты графического окна добавить по центру верхней части окна текстовый блок, содержащий математиче-ское выражение выводимой функции.

5 Требования к отчёту
Отчёт должен содержать:
– титульный лист с указанием названия ВУЗа, кафедры, номе-ра и темы лабораторной работы, а также номера зачетной книжки, ва-рианта и ФИО студента, подготовившего отчёт;
– цель выполняемой работы;
– задания;
– ответы на все контрольные вопросы лабораторной рабо-ты;
– результаты выполнения задания, листинги всех составлен-ных программ с обязательными комментариями.
6 Контрольные вопросы
6.1 В окно с каким именем выводятся построенные графики функций?
6.2 Назовите команды для построения графиков в декартовой сис-теме координат. Что является аргументами этих команд?
6.3 Каким образом можно изменить стиль графика?
6.4 Как объединить в одной системе координат несколько графиков функций?
6.5 Для чего используется полярная система координат?
6.6 Какие команды используются для построения графиков в по-лярной системе координат?
72
О. Л. Куляс, К. А. Никитин
_____________________________________________________________
6.7 Для чего служит и как применяется функция compass?
6.8 Какие функции MATLAB/Octave используются для построения трехмерных графиков функций?
6.9 В чем заключается особенность применения функции plot3?
6.10 Как можно построить 3D график в виде сетчатой поверхности?
6.11 Как можно построить 3D график в виде сетчатой поверхности с функциональной окраской?
6.12 Каким способом можно вывести в одно графическое окно не-сколько разных графиков?
6.13 Какие команды используются для изменения вида и стиля гра-фиков?
6.14 Какие команды используются для изменения ширины линий и размеров маркеров графиков?
6.15 Какие интерактивные инструменты используются для измене-ния вида и стиля графиков?
6.16 Какие правила следует выполнять при подготовке программ в виде m-файлов?
6.17 В чём отличия графиков построенных командами mesh(Z) и mesh(X,Y,Z)?
7 Рекомендуемая литература
1 Matlab и Simulink – сообщество пользователей, материалы, книги, форум [Электронный ресурс] – Режим доступа: http://matlab.exponenta.ru, свободный. – Загл. с экрана.
2 Дьяконов, В. П. MATLAB. Полный самоучитель [Текст] / В. П. Дьяконов. – М.: ДМК Пресс, 2012. – 768 с.
3 Дьяконов, В. П. MATLAB 6.5 SP1/7/7 SP1 + Simulink 5/6. Ра-бота с изображениями и видеопотоками [Текст] / В. П. Дьяконов. – М.: СОЛОН-Пресс, 2005. – 400 c.
4 Солонина, А. И. Цифровая обработка сигналов. Моделирова-ние в MATLAB [Текст] / А. И. Солонина, С. М. Арбузов. – СПб.: БХВ-Петербург, 2008. – 816 с.
5 Сайт книги Алексеев Е.Р., Чеснокова О.В. GNU Octave для студентов и преподавателей. –Донецк.:ДонНТУ, Технопарк ДонНТУ УНИТЕХ, 2011. – 332с. [Электронный ресурс] – режим доступа http://gnu-octave.narod.ru/, свободный. – Загл. с экрана.
6 Сайт разработчиков Octave [Электронный ресурс] – режим доступа https://octave.org/doc/v6.4.0/, свободный. –Загл. с экрана.

Была ли полезна данная статья?
Да
66.67%
Нет
33.33%
Проголосовало: 198

или напишите нам прямо сейчас:

Написать в WhatsApp Написать в Telegram