Построение графиков с помощью MATLAB и GNU Octave

Для визуализации входных данных и полученных результатов MATLAB и GNU Octave располагают обширными библиотеками графических построений. Возможно построение как двумерных, так и трехмерных графиков.

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

  • -plot(X, Y) - в данном случае будет построен график зависимости у(х). Значения у и х берутся из матриц Y и X, которые могут быть либо вектором-столбцом, либо вектором-строкой одинаковой размерности;
  • - plot(Xl,Yl,...,Xn,Yn) - будут одновременно построены несколько функциональных зависимостей у(х), при этом параметры линий на графике будут выбраны MATLAB и GNU Octave самостоятельно;
  • - plot(X,Y,LineSpec), plot(Xl,Yl,LineSpecl,...,Xn,Yn,LineSpecn) — наиболее полный вариант вызова функции построения двумерных графиков с заданием параметров графических линий. LineSpec - это шаблон, с помощью которого определяется цвет линии, ее толщина, вид маркеров и другие параметры. Шаблон представляет собой взятое в апострофы название параметра, отделенное запятой от его значения. Подробное описание параметров и значений можно посмотреть в документации к MATLAB и GNU Octave, ниже приводится таблица с основными параметрами.

Таблица 1

Параметр

Возможные значения

'Color' — определяет цвет линии

'у' - желтый

'т' - магента (пурпурный)

'с' - циан (зелено-голубой)

'г' - красный

'g' - зеленый

’Ь' - голубой

'к' - черный

[г g Ь] - цвет в формате RGB (параметры г, g, b лежат в пределах от 0 до 1)

'LineStyle'- вид линии

- сплошная

'- -' - двойная сплошная

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

'попе' - без линии (будут оставлены только маркеры)

Окончание табл. 1

Параметр

Возможные значения

'LineWidth'- ширина линии

Положительные значения с шагом 0.5

'Marker' - вид маркера

'о' - круговой

'+' - знак «+»

's' - квадрат

'р' — пятиугольник

'Л' - ориентированный вверх треугольник

Пример: построение графика sin(x)'. x=0:0.1:2*pi;

plot(x,sin(x), ’Color’, ’m ’, ’LineStyle’, ’-. ’, ’LineWidth ’,4);

Выполнение данной последовательности команд приведет к построению графика синуса штрихпунктирной линией четвертой толщины цвета «магента» (рис. 3).

График функции sin(x)

Рис. 3. График функции sin(x)

Если применить еще одну команду plot, то после ее выполнения график новой функции будет нарисован поверх предыдущего и затрет его. Данная особенность связана не с работой функции plot, а с работой графического окна. Поэтому все функции, связанные с построением графиков, применяются обычно в паре с функциями, определяющими режим работы графического окна. Некоторые из них приведены в табл. 2.

Таблица 2

Функция

Варианты использования

figure - функция запроса графического окна. После применения все изображения будут перенаправляться в запрошенное окно.

figure() - вызывает графическое окно, номер которому будет присвоен системой автоматически. Возможен вызов в виде N=figure(), в этом случае переменной N будет присвоен номер графического окна.

figure(N) - будет создано новое окно, окну будет присвоен номер N, если такого окна не существовало. Если окно с таким номером существовало, в него будет перенаправлен графический вывод.

hold - функция, включающая и отключающая сохранение в графическом окне предыдущих графиков.

hold on — новые графики будут изображаться совместно с предыдущими.

hold off - новые графики будут изображаться поверх предыдущих, затирая их.

grid - функция, включающая и отключающая отображение линий сетки.

grid on - включает отображение линий сетки.

grid off - выключает отображение линий сетки.

xlabel, ylabel - функции подписывания осей.

xlabel ('НА ЗВ А НИЕ ОСИ X') уІаЬеЦ'НАЗВАНИЕ ОСИ Y)

legend — функция нанесения на график легенды (сопровождающих и поясняющих надписей).

legend (' СТРОКА Г, 'СТРОКА 2',...)

Пример: построение графиков sin(x) и cosfxf.

x=0:0.1:2*pi;

figure(l);

hold on;

plot(x,sin(x), 'Color', 'm', 'LineStyle',', 'LineWidth ',4) plot(x,cos(x), 'Color', 'g', 'LineStyle','LineWidth',3) legend('sin(x)', 'cos(x)') grid on;

xlabel('x');

ylabel('sin(x)');

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

Применение функции plot

Рис. 4. Применение функции plot

Один из способов построения трехмерных графиков связан с использованием функции surf. Наиболее часто функция вызывается в формате surf(X,Y, Z) или в surf(X, Y, Z, С). X и Y - векторы-строки, определяющие значения абсцисс и ординат. Z - матрица с размерностью, равной произведению размерностей матриц X и Y, задающая значения координаты z для соответствующих пар х и у. Параметр С определяет способ отображения трехмерной картинки (цвет, режим отображения кромок и т. д.).

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

х=-1:0.01:1;

у=-1:0.01:1;

for i=-l:0.01:l

forj=-l:0.01:l

z(round(i^l00+101),round(j*100+101))=i^2+jA'2;

end end surf(x,y,z)

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

Поверхность второго порядка

Рис. 5. Поверхность второго порядка

MATLAB и GNU Octave при формировании графического окна предоставляют набор инструментов для работы с полученным изображением. Сюда входит возможность вращения, работы с сетками, сохранение в одном из графических форматов и т. д. Отметим, что инструментарий, предоставляемый MATLAB, значительно богаче, его внешний вид приведен на рис. 6.

Ф Figure 1 - ? <х

File Edit View Insert Tools Desktop Window Help

Осиa| ? 0| ? q

Рис. 6. Набор инструментов для работы с изображением

Перечисленные выше способы построения как двумерных, так и трехмерных графиков не являются единственно возможными. Как MATLAB, так и GNU Octave обладают богатейшими графическими библиотеками. Подробности можно посмотреть в руководствах пользователя или в справке.

Задания к лабораторному практикуму

  • 1. По заданию преподавателя запустите MATLAB или GNU Octave.
  • 2. Сформируйте вектор-строку, вектор-столбец, матрицу с элементами по заданию преподавателя.
  • 3. Постройте график, отображающий одновременно три функции по выбору преподавателя. Добейтесь отображения маркеров.
  • 4. Постройте трехмерное изображение поверхности второго порядка по заданию преподавателя. Сохраните полученное изображение в формате .jpg.
 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ   След >