Функция plot в матлабе

Функция plot в матлабе

3.2.1. Построение графиков функций одной переменной

3.2.2. Инструментальная панель графических окон

3.2.3. Построение трехмерных изображений

3.2.1. Построение графиков функций одной переменной

СистемаMatLabможет создавать как плоские графики, так и трехмерные сетчатые поверхности, а также движущиеся графики, или анимацию.

В научных и технических задачах основными и наиболее часто употребительными являются графики, которые представляют собой кривые, описывающие те или иные численные данные. MatLabрасполагает набором команд высокого уровня, которые используются для построения таких кривых и управления ими. Это такие команды, как plot, title, axis, text, hist, contourи ряд других. Кроме того, строить графики, управлять ими и редактировать их можно с помощью инструментальных панелей графических окон. Можно также использовать комбинацию обоих подходов. Например, можно использовать команды для создания графиков, а затем модифицировать их.

Для того чтобы построить график функции y=f(x), достаточно тем или иным способом сформировать два вектора одинаковой размерности — век­тор значений аргументов x и вектор соответствующих значений функции у, а затем выполнить команду plot. Команда plotоткрывает графическое окно и отображает в нем зависимость y(x) в линейных осях, при условии что xи yявляются векторами одинаковой длины.

Рассмотрим пример построения графика синуса на интервале от -4 до 4.

Пример 3.2-1

В результате выполнения команд открывается графическое окно (рис. 3.2-1).

В вышеописанном примере вектор x является набором равноотстоящих точек с шагом 0.01, а y— вектор со значениями функции синуса в этих точках. Для отображения графика системаMatLab открывает отдельное окно с именем Figure 1. Переход между окнами, то есть возврат в окно MatLabили переход от одного графического окна к другому графическому окну осуществляется в соответствии с правилами среды: с помощью команд основного меню; комбинации или с помощью мыши.

Рис. 3.2-1. Графическое окно с графиком функции y=sin(x)

В вышеописанном примере вектор xявляется набором равноотстоящих точек с шагом 0.01, а y— вектор со значениями функции синуса в этих точках. Для отображения графика системаMatLab открывает отдельное окно с именем Figure 1. Переход между окнами, то есть возврат в окно MatLabили переход от одного графического окна к другому графическому окну осуществляется в соответствии с правилами среды: с помощью команд основного меню; комбинации или с помощью мыши.

Рассмотрим еще один пример построения графика y=e x2 на интервале [-1.5 ;1.5].

Пример 3.2-2

Необходимо обратить внимание на то, что точка перед знаком возведения в степень (^)обязательна, поскольку мы хотим, чтобы возведение в степень выполнялось поэлементно.

В системеMatLab можно также построить кривые, заданные параметрически.

Пример 3.23

Рис. 3.2-3. График функции, заданный параметрически

Аргументами функции plot()могут быть различные комбинации векторов и матриц:

если y— вектор, то будет нарисована кривая yкак функция номера элемента в y;

если y— матрица, то будет сгенерирован набор кривых, каждая из которых представляет собой зависимость столбца матрицы от номера строки.

если x и y — вектора одинаковой длины и размерности (оба строки или оба столбцы), то будет нарисована кривая y от x;

если x — вектор, а y — матрица, строки или столбцы yбудут нарисованы в зависимости от x; если столбец матрицы y имеет ту же длину, что и вектор x, то будет построен набор кривых, представляющий зависимость каждого из столбцов от x; если строка матрицы y имеет ту же длину, что и вектор x, то будет построен набор кривых, представляющий зависимость каждой из строк от x; если число строк и столбцов y одинаково, то строятся столбцы от x;

если x -матрица, а y -вектор, то будет построено несколько кривых, представляющих зависимость y от строк или столбцов матрицы x по правилу, описанному в предыдущем пункте;

если x и y -матрицы одинаковой размерности, то будет построен набор кривых, представляющих столбцы y от столбцов x.

Читайте также:  На что похож запах скунса

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

В общем случае, число аргументов у команды plot()не ограничивается двумя, то есть plot(x1,y1,x2,y2. ), причем правила, описанные выше, относятся к каждой паре аргументов.

С помощью соответствующих команд любой график в графическом окне MatLab может быть снабжен заголовком, именами осей, и на сам график может быть помещен дополнительный текст с помощью команд вывода текста. На график можно так же поместить сетку. Аргументами всех этих команд является текстовая строка. Например, команда title(‘График наилучшего приближения’) добавит к вашему графику заголовок. Команда gtext(‘Пятно’)позволяет с помощью мыши или клавишного курсора разместить на рисунке индикаторный крест, в месте размещения которого и будет помещен текст после нажатия произвольной клавиши. При необходимости сделать подписи осей используются команды Xlabel(‘ПодписьX’), Ylabel(‘ПодписьY’).

Для изображения нескольких кривых на одном рисунке существуют два способа, которые иллюстрируются следующими примерами.

Пример 3.2-4а

2. Оформление графиков функций.

Сейчас рассмотрим ряд вопросов, связанных с внешним видом графиков функций — цветом и стилем линий, которым проведены сами графики, а также различными надписями в пределах графического окна.

Например, следущие команды

x = 0 : 0.1 : 3; y = sin( x );

plot( x, y, ‘r-‘, x, y, ‘ko’ )

позволяют придать графику вид красной сплошной линии, на которой в дискретных

вычисляемых точках проставляются чёрные окружности. Здесь функция plot дважды строит график одной и той же функции, но в двух разных стилях. Первый из этих стилей отмечен как ‘r-‘, что означает проведение линии красным цветом (буква r), а штрих означает проведение сплошной линии. Второй стиль, помеченный как ‘ko’ означает проведение чёрным цветом (буква k) окружностей (буква o) на месте вычисляемых точек.

В общем случае, функция

plot( x1, y1, s1, x2, y2, s2, )

позволяет объединить несколько графиков функций y1(x1), y2(x2), , проведя их со стилями s1, s2,

В случае функции вида

plot( x1, y1, s1, x1, y1, s2 )

мы можем провести линию графика единственной функции y1(x1) одним цветом, а точки на нём (вычисляемые точки) — другим цветом.

Стили s1, s2, задаются в виде набора трёх символьных маркеров, заключенных в одиночные кавычки. Первый (не обязательно по порядку) из этих маркеров задаёт тип линии:

Маркер Тип линии
непрерывная
штриховая
: пунктирная
-. штрих-пунктирная

Второй маркер задаёт цвет:

Маркер Цвет линии
c голубой
m фиолетовый
y жёлтый
r красный
g зелёный
b синий
w белый
k чёрный

Последний маркер задаёт тип проставляемых "точек":

Маркер Тип точки
. точка
+ плюс
* звёздочка
o кружок
x крестик

Можно указывать не все три маркера. Тогда используются необходимые маркеры, установленные "по умолчанию". Порядок, в котором указываются маркеры, не является существенным, то есть ‘r+-‘ и ‘-+r’ приводят к одинаковому результату.

Если в строке стиля поставить маркер типа точки, но не проставить маркер на тип линии, то тогда отображаются только вычисляемые точки, а непрерывной линией они не соединяются.

Наиболее мощным способом оформления графиков функций (и выполнения других графических работ) является дескрипторный метод, полное изучение которого относится к так называемой низкоуровневой графике системы MATLAB и выходит за рамки настоящего пособия. Мы, однако, приведём сейчас (и позже) некоторые простые примеры.

Выше мы оформляли график функции sin с помощью непрерывной красной линии и чёрных кружков. Теперь попробуем ограничиться лишь непрерывной линией, но очень толстой. Как это можно сделать? Вот простое решение на базе дескрипторной графики:

x = 0 : 0.1 : 3; y = sin( x );

hPlot = plot( x, y );

set( hPlot, ‘LineWidth’, 7 );

Функция plot через опорные (вычисленные) точки с координатами x, y проводит отрезки прямых линий. Прямые линии в системе MATLAB представляют собой графические объекты типа Line. Эти объекты имеют огромное число свойств и характеристик, которые можно менять. Доступ к этим объектам осуществляется по их описателям (дескрипторам; handles).

Читайте также:  Тест игр на слабом пк

Описатель объекта Line, использованного для построения нашего графика, возвращается функцией plot. Мы его запоминаем для дальнейшего использования в переменной hPlot. Затем этот описатель предлагается функции set для опознания конкретного графического объекта. Именно для такого опознанного объекта функция set изменяет характеристики, которые указаны в других аргументах при вызове функции set. В нашем примере мы указали свойство ‘LineWidth’ (толщина линии), для которого задали новое значение 7 (а по умолчанию — 0.5). В результате получается следующая картина:

Текущее значение любого параметра (атрибута; характеристики) графического объекта можно узнать с помощью функции get. Например, если после получения показанного на рисунке графика ввести и исполнить команду

width = get( hPlot, ‘LineWidth’ )

то для переменной width будет получено значение 7.

Теперь от оформления непосредственно линий перейдём к оформлению осей системы координат, к надписям на осях и так далее. MATLAB выбирает пределы на горизонтальной оси равными указанным для независимой переменной. Для зависимой переменной по вертикальной оси MATLAB вычисляет диапазон изменения значений функции. Затем этот вычисленный диапазон приписывается вертикальной оси системы координат, так что график функции оказывается как бы вписанным в прямоугольник.

Если мы хотим отказаться от этой особенности масштабирования при построении графиков в системе MATLAB, то мы должны явным образом навязать свои пределы изменения переменных по осям координат. Это делается с помощью функции

axis( [ xmin, xmax, ymin, ymax ] )

причём команду на выполнение этой функции можно вводить с клавиатуры сколько угодно раз уже после построения графика функции, чтобы, глядя на получающиеся визуальные изображения, добиться наилучшего восприятия. Такое масштабирование позволяет получить подробные изображения тех частей графика, которые вызывают наибольший интерес в конкретном исследовании. Например, для ранее полученного графика функции sin, можно сузить пределы по осям координат

axis( [ 1.5, 2.5, 0.5, 2 ] )

чтобы получше разглядеть вершину синусоиды:

Чаще всего этот приём увеличения масштаба изображения применяют при графическом решении уравнений с тем, чтобы получить более высокую точность приближения к корню.

Теперь изменим количество числовых отметок на осях. Их может показаться недостаточно (на горизонтальной оси последнего рисунка их всего три — для значений 1.5 , 2 и 2.5).

Изменить отметки на осях координат можно с помощью функции set, обрабатывающей графический объект Axes. Это объект, который содержит оси координат и белый прямоугольник, внутри которого и проводится сам график функции. Для получения описателя такого объекта применяют функцию gca, которую вызывают без параметров.

В итоге, следующий фрагмент кода

hAxes = gca;

set( hAxes, ‘xtick’, [ 1.5, 1.75, 2.0, 2.25, 2.5 ] )

выполняющийся после построения графика, устанавливает новые метки на горизонтальной оси координат (пять штук).

Для проставления различных надписей на полученном рисунке применяют функции xlabel, ylabel, title и text. Функция xlabel предназначена для проставления названия горизонтальной оси, функция ylabel — то же для вертикальной оси (причём эти надписи ориентированы вдоль осей координат).

Если требуется разместить надпись в произвольном месте рисунка — применяем функцию text:

text( x, y, ‘some text’)

Общий заголовок для графика проставляется функцией title. Кроме того, используя команду

grid on

можно нанести измерительную сетку на всю область построения графика. Применяя все эти средства

title( ‘Function sin(x) graph’ );

xlabel( ‘x coordinate’ ); ylabel( ‘sin(x)’ );

text( 2.1, 0.9, ‘leftarrowsin(x)’ ); grid on;

придаём графику функции следующий вид:

Надпись функцией text помещается, начиная от точки с координатами, указанными первыми двумя аргументами. Специальные символы вводятся внутри текста после символа ("обратная косая черта"). В примере мы ввели таким образом специальный символ "стрелка влево". Обозначения для специальных символов совпадают с таковыми в системе подготовки научных текстов TeX.

Читайте также:  Как отменить выбор программы для открытия файла

MATLABимеет исключительно мощную систему для построения различных двухмерных и трехмерных графиков, а также их настройки, редактирования и форматирования. Типы и подтипы графиковMATLABочень разнообразны. Список функций двумерной графики можно получить командойhelp graph2d, трехмерной –help graph3d.

Графики выводятся в отдельных графических окнах с помощью команды вида figure(n), гдеn – номер графического окна. На одном графике можно построить несколько кривых, отличающихся цветом и типами линий и точек. Графики могут быть скопированы и вставлены в другие приложения:Word,Excel,PowerPointи др. Для этого используется командаEdit/ Copy Figureокна графики.

Часто используемые команды при построении графиков

plot(t,y) % График непрерывной функции y(t)

plot(x1, y1, x2, y2) % Графики зависимостей y1 от x1 и y2 от x1

stem(x,y) %График дискретной функции (сигнала)y(x)

stairs(x,y) % График в виде ступенчатой линии

loglog(f,Y) %График с логарифмическими масштабами по x и y

semilogx(f,Y) %Логарифмический масштаб поxи линейный поy

polar(phi,r) % График в полярных координатах

title(‘ название’) % Вывод заголовка графика

xlabel(‘время’) % Метка по осиx

ylabel(‘Напряжение’) % Метка по осиy

legend(‘АЧХ системы‘) % Вывод поясняющей надписи

axis([xmin, xmax, ymin, ymax]) % Установка масштабов по осямxи y

xlim([xmin,xmax]) % Установка масштаба по осиx

ylim([ymin,ymax]) % Установка масштаба по осиy

figure(n) % Устанавливает фигуру (окно)nактивной

subplot(r,c,n) % Разбивает графическое окно наr * cподокон иsubplot(rcn) % устанавливает подокноn в качестве активного.

gridon% к графику добавляется сетка

holdon% позволяет построить несколько графиков в окне

holdoff% отменяетholdonдля текущего графика

text% позволяет разместить текст на графике

zoomon/off% включение / выключение возможности увеличения % фрагментов графика с использованием

% левой и правой кнопок мыши

Построение графика зависимости функции yот индекса массива (номера элемента)x

Построение графика зависимости y(x)

Несколько пар аргументов в функции plot()позволяют построить несколько графиков в одном графическом окне. При этомMATLABдля каждого графика использует отдельный цвет линии.

Цвет, тип линии и обозначение (тип) точек являются аргументами функции plot, соответствующие справочные сведения можно получить с помощью команды вызова справкиhelp plot .

Для разбиения графического окна на подокна служит команда plot(m,n,p)илиplot(mnp),в которойm– число строк,n— число столбцов,p— номер подокна. Пример построения графика функциив двух подокнах с помощью функцииplot()в одном случае и функцииstem()в другом с разными пределами по оси аргумента (рис. 7):

t=linspace(0, 8, 401); % вычисление 402 точек в интервале [0,8]

axis([0 1 min(x) max(x)] )

Fs=1024; % Частота отсчетов

f1=50; % частота гармоники

N=512; % число отсчетов сигнала

t=0:1/Fs:(N-1)/Fs; % вектор времени

plot(t,x), grid % график сигнала

Для добавления графиков к уже существующим применяют команду hold on

Для отмены действия hold on (освобождения окна графики) используют hold off.

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

В окне графики MATLABпозволяют выполнять разнообразную настройку графического окна и его объектов с помощью меню или панели инструментов (рис.9).

В окне редактора или с помощью контекстного меню по правой кнопке мыши производятся необходимые установки (цвет, размер, тип, толщина линии и др.) объекта окна графики.

Возможности для подобной интерактивной настройки графики — очень широкие. В первую очередь они обеспечиваются кнопкой Edit Plot инструментальной панели окна.

Трехмерная графика MATLAB– очень развитая и многообразная, сама по себе очень важная часть программы, но в курсе «Сигналы и системы» она используется редко.

Некоторые из команд построения 3D– графиков

>> plot3(…) % строит аксонометрическое изображение 3D-поверхности

>> mesh(…) % строит трехмерные поверхности со специфицированной

Пример построения графика передаточной функции системы второго порядка с передаточной функцией .

Нули и полюса системы :

Ссылка на основную публикацию
Фиксированная шапка сайта при прокрутке
Допустим у вас важная информация например контакты находятся в шапке и вы хотите что бы они всегда были на веду...
Удаление последнего элемента списка
Введение. Основные операции О дносвязный список – структура данных, в которой каждый элемент (узел) хранит информацию, а также ссылку на...
Удаление дубликатов фотографий на русском бесплатно
Здравствуйте Уважаемый Друг. У каждого из нас на компьютере хранится большое количество различных фотографий изображений и тому подобных картинок. Парой...
Фиксированное меню при скролле
Создаём эффект залипания при прокручивании страницы на блоках меню навигации, бокового виджета и меню с помощью jQuery и без него....
Adblock detector