
Lab2_2014
.pdf
Команда xlabel ('<текст>') розміщує текст для двовимірного графіку уздовж осі x, для тривимірногографіку - уздовж осі x або під графіком.
Команда ylabel ('<текст>') розміщує текст для двовимірного графіку уздовж осі y, для тривимірногографіку - уздовж осі y або під графіком.
Команда zlabel ('<текст>') розміщує текст уздовж осі тривимірного графіку.
Повторне використання команди призводить до заміни старого тексту новим.
CLABEL |
Маркування ліній рівня |
|
|
Синтаксис:
clabel(C) clabel(C, v)
clabel(C, ‘manual’)
Опис:
Команда clabel (C) додає мітки до ліній рівня у випадково вибраних позиціях.
Команда clabel (C, v) маркерує лінії рівня контура, які задані у векторі v.
Команда clabel (C, 'manual') маркерує лінії рівнів в позиціях, що вказуються за допомогою «миші». Натиснення клавіші Return або правої кнопки миші завершує маркування. Якщо «миша» недоступна, то можна використати клавішу «пробіл» для переходу між лініями рівнів та клавіши-"стрілки" для переміщення перехрестя.
Приклад:
Згенерувати, намалювати і маркерувати лінії рівня дляфункції .
x = -2 : .2 : 2; y = x; [X, Y] = meshgrid(x);
Z = X.* exp(- X.^2 - Y.^2); C = contour(X, Y, Z); clabel(C)
GTEXT |
Розміщує заданий текст на графіці з використанням миші |
|
|
Синтаксис:
gtext(‘<текст>’)
Опис:
Команда gtext ('<текст>') висвічує в активному графічному вікні перетин, переміщення якого дозволяє вказати місце введення заданого тексту; після закінчення позиціонування натиснення кнопки миші або будь-якої клавіші вводить заданий текст.
Для того, щоб налаштувати процедуру gtext на введення російського тексту, потрібно в тіло процедури після рядка
set(ht, 'units', units')
добавити рядок
21

set(ht, 'FontName', '<имя шрифта>')
Приклади:
Розмісьтимо на графіку функції y = sin(x)/x маркер “Швидкість”:
x = 1e-6 : 0.05 : 10; plot(x, sin(x)./x) grid gtext('Швидкість')
LEGEND |
|
Пояснення до графіку |
|
|
|
Синтаксис: |
|
legend(‘<текст1>‘, ‘<текст2>‘, ‘<текст3>‘, ...)
legend(‘<тип лінії1>‘, ‘<текст1>‘, ‘<тип лінії2>‘, ‘<текст2>‘, ...) legend(h,...)
legend(M) legend(h, M) legend off legend(..., n)
Опис:
Команда legend ('<текст1>', '<текст2>', '<текст3>', ...) додає до поточного графіку пояснення у вигляді вказаних текстових рядків.
Команда legend ('<тип линії1>', '<текст1>', '<тип линії2>', '<текст2>', ...) дозволяє специфікувати тип лінії,яка виноситься в пояснення, так, як це робиться в команді plot.
Команда legend (h ...) додає пояснення до графіку з дескриптором h.
Команди legend (M) і legend (h, M), де M - масив рядків,також допустимі для формування пояснення. Слідпам'ятати, що рядки масиву M повинні мати однакову довжину.
Команда legend off видаляє пояснення з поточногографіку.
Команда legend (..., n) встановлює граничну кількістьпозицій для розміщення пояснення. Якщо виявляється,що в області графіку місця недостатньо, графік перебудовується і пояснення розміщується поза межами графіку. Якщо n = - 1, то пояснення розміщується поза областю графіку. Якщо n = 0, то пояснення розміщується в області графіку, якщо місця для цього досить.
Для переміщення пояснення слід натиснути ліву кнопку миші, при цьому знаходячись в цій області, а потім перемістити пояснення в потрібну позицію.
Приклади:
Побудувати на одному графіку функції Бесселя 1, 3 і 5-го порядку і дати відповідне пояснення російською мовою.
x = 0 : .2 : 12;
hp = plot(x, bessel(1, x), ‘-’ x, bessel(3, x), ‘--’, x, bessel(5, x), ‘-.’); set(gca, 'FontName', 'TimesET')
set(gca, 'FontSize', 10)
legend('Порядка 1', 'Порядка 3', 'Порядка 5', -1) grid
Зауваження:
Для того, щоб уникнути перетину пояснення з лініямиграфіку або нанесеною сіткою, необхідно поточному графічному об'єкту axes присвоїти дескриптор пояснення:
22

hl = legend(....) axes(hl) print-dbitmap
COLORBAR |
Шкала палітри |
|
|
Синтаксис:
colorbar(‘vert‘)
colorbar(‘horiz‘)
colorbar(h) colorbar
Опис:
Команда colorbar ('vert') додає до поточного графіку вертикальну шкалу палітри.
Команда colorbar ('horiz') додає до поточного графіку горизонтальну шкалу палітри.
Команда colorbar (h) додає до графіку з дескриптором h шкалу палітри. Розміщення шкали реалізується автоматично залежно від співвідношення ширини і висоти графіку.
Команда colorbar без аргументів – розміщує на поточномуграфіку нову вертикальну шкалу палітри або оновлює колишню.
Спеціальна графіка
BAR |
Стовпчикові діаграми |
|
|
Синтаксис:
bar(y)bar(x, y) [xb, yb] = bar(...)
bar(y, ‘<тип лінії>‘) bar(x, y, ‘<тип лінії>‘)
Опис:
Команда bar (y) виводить графік елементів одновимірного масиву y у вигляді стовпчикової діаграми.
Команда bar (x, y) виводить графік елементів масиву y увигляді стовпців в позиціях, що визначаються масивом x, елементи якого мають бути впорядковані в порядкузростання.
Якщо X і Y - двовимірні масиви однакових розмірів, то кожна діаграма визначається відповідною пароюстовпців і вони надбудовуються одна над іншою.
Команди bar (y '<тип лінії>'), bar (x, y '<тип лінії>') дозволяють задати тип ліній, що використовуються для побудови стовпчикових діаграм, по аналогії з командою plot
Функція [xb, yb] = bar (...) не виводить графіку, а формує такі масиви xb і yb, які дозволяють побудувати стовпчикову діаграму за допомогою команди plot (xb, yb).
Приклади:
Побудувати графік функції у вигляді стовпчикової діаграми.
x = -2.9 : 0.2 : 2.9; bar(x, exp(-x . * x))
23

ERRORBAR |
Графік з вказівкою інтервалу похибки |
|
|
Синтаксис:
errobar(x, y, l, u, ‘<тип лінії>‘) errobar(y, l, u, ‘<тип лінії>‘) errobar(x, y, e)
errobar(y, l, e)
Опис:
Команда errobar (x, y, l, u '<тип лінії>') будує графік функції y залежно від x із вказанням інтервалу похибкиі, який визначається масивами l і u. Масиви x, y, l, u мають бути одного розміру. Похибки в кожній точці {x (i), y (i)} визначаються відхиленнями вниз l (i) і вгору u (i) відносно точки графіку, так що сумарна похибка рівна l (i) u (i). Рядкова змінна '<тип лінії>' аналогічна тій, що використовується в команді plot.
Якщо X, Y, L і U - двовимірні масиви, то в цьому випадкукожному стовпцю відповідає свій графік.
Команда errobar (x, y, e) будує графік функції з похибкою ±e відносно точки графіку.
Команди errobar (y, l, u '<тип лінії>') і errobar (y, e) відрізняються від вищеописаних тільки тим, що будують графіки функцій залежно від номера елементу.
Приклад:
Побудувати графік функції y = sin (x) з інтервалом похибки ±e, який визначається як стандартне відхилення.
|
x = 1 : 10; |
|
y = sin(x); |
|
e = std(y)*ones(size(x))/5; |
|
errorbar(x, y, e) |
|
|
HIST |
Побудова гістограми |
|
|
Синтаксис:
hist(y) hist(y, n) hist(y, x)
[y, x] = hist(y, ...)
Опис:
Команди hist (...) підраховують і відображають на графіку кількість елементів масиву y, значення яких потрапляють в заданий інтервал; для цього увесь діапазон значень yділиться на n інтервалів (за замовчуванням 10) і підраховується кількість елементів в кожному інтервалі.
Команда hist (y) виводить гістограму для 10 інтервалів.
Команда hist (y, n) виводить гістограму для n інтервалів.
Команда hist (y, x) виводить гістограму з урахуванням діапазону варіації змінної x.
Функції [y, x] = hist (y ...) формують такі масиви y та x, що bar(x, y) є гістограмою.
Приклади:
24

Побудувати гістограму для 10 000 випадкових чисел, розподілених за нормальним законом.
|
x = -2.9 : 0.1 : 2.9; |
|
y = randn(10000,1); |
|
hist(y, x) |
|
|
STEM |
Дискретні графіки |
|
|
Синтаксис:
stem(y) stem(x, y)
stem(y, <тип лінії>) stem(x, y, <тип лінії>)
Опис:
Команда stem (y) виводить графік елементів одновимірного масиву y у вигляді вертикальних ліній, які закінчуються в точках графіку, що позначаються кружечком.
Команда stem (x, y) виводить графік елементів масиву y увигляді вертикальних ліній в позиціях, що визначаються масивом x, елементи якого мають бути впорядковані в порядку зростання.
Команди stem (y <тип лінії>), stem (x, y <тип лінії>) дозволяють задати тип ліній, що використовуються для побудови дискретного графіку, по аналогії з командою plot.
Приклади:
Побудувати графік функції у вигляді дискретної послідовності.
t = 0 : 2 : 200; alpha = 0.02; beta = 0.5; x = exp(-alpha*t) .*sin(beta*t);
stem(t, x), grid
set(gca, 'FontName', 'TimesET') xlabel('Время, мс'), ylabel('Амплитуда')
STAIRS |
Ступінчастий графік |
|
|
Синтаксис:
stairs(y) stairs(x, y)
[xb, yb] = stairs(...)
Опис:
Команда stairs (y) виводить графік елементів одновимірного масиву y у вигляді ступінчастої функції, аналогічній стовпчиковій діаграмі, але без вертикальних ліній. Такі графіки доцільно використати при виведенні процесів в дискретно-безперервних системах.
Команда stairs (x, y) виводить графік елементів масиву y увигляді ступінчастої функції в позиціях, що визначаються масивом x, елементи якого мають бути впорядковані впорядку зростання.
Функція [xb, yb] = stairs (...) не виводить графік, а формує такі масиви xb і yb, які дозволяють побудувати ступінчастуфункцію за допомогою команди plot(xb, yb).
Приклади:
Побудувати ступінчастий графік для функції x = sin(t).
25

|
t = 0 : 0.25 : 10; |
|
stairs(t, sin(t)) |
ROSE |
Гістограма в полярних координатах |
Синтаксис:
rose(phi) rose(phi, n) rose(phi, x)
[phi, r] = rose(phi, ...)
Опис:
Команди rose (...) підраховують і відображають на графіку кількість кутових елементів в масиві phi, значення яких потрапляють в заданий інтервал; для цього, увесь діапазон значень phi ділиться на n інтервалів (за умовчанням 20) і підраховується кількість кутових елементів в кожномуінтервалі. Така гістограма відома під назвою рози вітрів.
Команда rose (phi) будує розу вітрів для 20 інтервалів.
Команда rose (phi, n) будує розу вітрів для n інтервалів.
Команда rose (phi, n) будує розу вітрів з урахуванням діапазону варіації змінної phi.
Функції [phi, r] = rose (phi ...) формують такі масиви phi і r,що polar (phi, r) є гістограмою в полярних координатах.
Приклади:
Розглянемо дискретний запис зміни напряму вітру через кожну годину впродовж 12 ч і побудуємо відповідну розу вітрів для цього періоду спостережень.
wdir = [45 90 90 45 360 335 360 270 335 270 335 335]; wdir = wdir * pi/180;
rose(wdir)
Переважний напрям рози вітрів впродовж цього періоду складає 330°.
COMPASS,
FEATHER
Cинтаксис:
compass(z) compass(x, y)
compass(y, ‘<тип лінії>‘) compass(x, y, ‘<тип лінії>‘) [hc, hb] = compass(...)
Графіки векторів
feather(z) feather(x, y)
feather(y, ‘<тип лінії>‘) feather(x, y, ‘<тип лінії>‘)
Опис:
Команда compass (z) виводить графік комплексних елементів одновимірного масиву z у вигляді векторів-стрілок, що виходять з однієї точки (початку координат).
Команда compass (x, y) рівносильна команді compass (x i* y).
26

Команди compass (y '<тип лінії>'), compass (x, y '<типлінії>') дозволяють задати тип ліній, що використовуються для побудови векторів-стрілок, по аналогії з командою plot.
Функція [hc, hb] = compass (...) не виводить графік, а формує такі масиви hc і hb, які дозволяють побудувати стовпчикову діаграму за допомогою команди plot (hc, hb).
Команда feather (z) виводить графік комплексних елементів одновимірного масиву z у вигляді векторів-стрілок, що виходять з рівновіддалених точок горизонтальної осі.
Команда feather (x, y) рівносильна команді feather (x i * y).
Команди feather (y '<тип лінії>'), feather (x, y '<тип лінії>') дозволяють задати тип ліній, що використовуються для побудови векторів-стрілок, по аналогії з командою plot.
Приклади:
Розглянемо дискретні записи зміни напряму і швидкості вітру через кожну годину впродовж 12 годин і побудуємо відповідну діаграму векторів для цього періоду спостережень.
wdir = [45 90 90 45 360 335 360 270 335 270 335 335]; knots = [6 6 8 6 3 9 6 8 9 10 14 12];
rdir = wdir * pi/180;
[x, y] = pol2cart(rdir, knots); polar(rdir, knots, ':w'); hold compass(x, y)
desc = 'Направление и сила ветра' h = get(gca, 'Title');
set(h,'String',desc,'FontName','TimesET','FontSize',10)
Побудуємо графік затухаючої експоненти у виглядівекторів-стрілок.
t = 0 : 0.5 : 10; s = 0.05 + i;
z = exp(-s * t); feather(z)
QUIVER |
Поле градієнтів функції |
|
|
Синтаксис:
quiver(X, Y, DX, DY) |
quiver(x, y, DX, DY) |
quiver(DX, DY) |
|
quiver(x, y, dx, dy, s) |
quiver(dx, dy, s) |
quiver(... ‘<тип_лінії>’) |
|
Опис: |
|
Команда quiver (X, Y, DX, DY) формує і виводить на екран поле градієнтів функції у вигляді стрілок для кожної пари елементів масивів X і Y, а пари елементів DX і DY використовуються для позначення напряму і розміру стрілки.
Команда quiver (x, y, DX, DY), де x і y - одновимірні масиви розмірів length (x) = n і length (y) = m,
де [m, n] = size (DX) =size (DY), формує і виводить на екран поле градієнтів для кожної точки; стрілки задаються четвірками {x (j), y (i), DX(i, j), DY (i, j)}. Зверніть увагу, що x відповідає стовпцям DX і DY, а y - рядкам.
Команда quiver (DX, DY) використовує масиви x = 1 : n і y = 1 : m.
Команди quiver (x, y, dx, dy, s), quiver (dx, dy, s) використовують скаляр s як коефіцієнт масштабу стрілки,наприклад s = 2 удвічі збільшує, а s = = 0.5 удвічі зменшуєрозмір стрілки.
27

Команда quiver (... '<тип_лінії>') дозволяє задати тип і колір лінії по аналогії з функцією PLOT.
Приклад:
Побудувати поле напрямів для функції в області -2 <= x <= 2, -2 <= y <= 2.
|
[x, y] = meshgrid(-2 : .2 : 2); |
|
z = x.*exp(-x.^2 - y.^2); |
|
[dx, dy] = gradient(z, .2, .2); |
|
contour(x, y, z), hold on |
|
quiver(x, y, dx, dy) |
|
|
COMET |
Рух точки по траєкторії |
|
|
Cинтаксис:
comet(y) comet(x, y) comet(x, y, p) comet
Опис:
Команда comet (y) малює рух точки по траєкторії, заданій одновимірним масивом y, у вигляді голови і хвоста комети.
Команда comet (x, y) малює рух точки по траєкторії, заданій масивами x і y.
Команда comet (x, y, p) керує довжиною хвоста комети p*length (y) за допомогою параметра p; за замовчуванням p= 0.10.
Команда comet запускає демонстраційний приклад.
Приклад:
Побудуємо різницю двох функцій tg (sin (t)) - sin (tg (t)) увигляді траєкторії руху точки.
t = -pi : pi/200 : pi;
comet(t, tan(sin(t)) - sin(tan(t)))
FILL |
Зафарбовування багатокутника |
|
|
Cинтаксис:
fill(x, y, ‘<цвет>‘) fill(x, y, c)
fill(X, Y, C)
fill(X1, Y1, C1, X2, Y2, C2, ...) h = fill(...)
Опис:
Команда fill (x, y '<колір>') зафарбовує багатокутник,заданий одновимірними масивами x, y, кольором, який може бути заданий або одним з символів 'r', 'g', 'b', 'c', 'm','y', ' w', 'k', або вектором [r g b]. Вершини багатокутника задаються відповідними парами елементів масивів x, y.Багатокутник має бути замкнутим, тому його перша і остання вершини, якщо це можливо, з'єднуються лінією.
Команда fill (x, y, c), де c - вектор тієї ж довжини, яку мають і вектори x та y, зафарбовує багатокутник кольором,що задається вектором С. Елементи вектору С масштабуються функцією caxis і
28

використовуються як індекси поточної палітри для задання кольорів у вершинах багатокутника; колір усередині багатокутника визначається білінійною інтерполяцією кольорів у вузлах.
Команда fill (X, Y, C), де X і Y - масиви однакових розмірів, будує для кожного стовпця свій багатокутник. Якщо масив C - вектор-рядок, кількість елементів якої дорівнює числу стовпців масивів X та Y, то кожен багатокутник буде зафарбований власним кольором; це відповідає застосуванню команди shading flat. Якщо масив C має тіж розміри, які мають і масиви X та Y, то зафарбовування реалізується методом інтерполяції; це відповідає застосуванню команди shading interpolated.
Команда fill (X1, Y1, C1, X2, Y2, C2 ...) дозволяє виконати зафарбовування скінченої кількості багатокутників.
Функція h = fill (...) повертає вектор-стовпець дескрипторів для графічних об'єктів patch, якими і є зафарбовані багатокутники. Команда fill (...) надає властивості Facecolor об'єкту patch одно із значень 'flat', 'interp' або [r gb].
Приклади:
Побудуємо багатокутник, який відповідає дорожньомузнаку STOP.
|
t = (1/16 : 1/8 : 1)'*2*pi; |
|
x = sin(t); |
|
y = cos(t); |
|
fill(x, y, 'b') |
|
axis('square') |
|
|
COMET3 |
Рух точки по просторовій траєкторії |
|
|
Cинтаксис:
comet3(z) comet3(x, y, z) comet3(x, y, z, p) comet3
Опис:
Команда comet (z) малює рух точки по траєкторії, заданій одновимірним масивом z, у вигляді голови і хвоста комети.
Команда comet3 (x, y, z) малює рух точки по траєкторії, заданій масивами x і y.
Команда comet3 (x, y, z, p) керує довжиною хвоста комети p*length (y) за допомогою параметра p; за замовчуванням p= 0.10.
Команда comet3 запускає демонстраційний приклад.
Приклади:
Побудуємо просторову параметричну криву {x = sin (5t), y= = cos (3t), z = t} у вигляді траєкторії руху точки.
|
t = -pi : pi/500 : pi; |
|
comet3(sin(5*t), cos(3*t), t) |
SLICE |
Перерізи функції від трьох змінних |
Синтаксис:
slice(x, y, z, V, xi, yi, zi, n) slice(X, Y, Z, V, xi, yi, zi, n)
29

slice(V, xi, yi, zi, n) h = slice(...)
Опис:
Команда slice (x, y, z, V, xi, yi, zi, n) будує плоскі перерізи функції від трьох змінних v (x, y, z) уздовж осей x, y, z;позиції перерізів визначаються векторами xi, yi, zi. Розмір двовимірного масиву V
рівний m х n х p, де m = length (y), n= length (x), p = length (z).
Команда slice (X, Y, Z, V, xi, yi, zi, n) замість одновимірних масивів використовує двовимірні масиви X, Y, Z, які обчислюються за допомогою функції meshgrid.
Команда slice (V, xi, yi, zi, n) використовує для задання області побудови масиви x = 1 : n, y = 1 : m, z = 1 : p.
Функція h = slice (...) повертає вектор-стовпець дескрипторів для графічних об'єктів surface, якими є перерізи тривимірної функції.
Приклади:
Побудувати перерізи для функції в тривимірній області -2 <= x <= 2, -2 <= y <= 2, - 2 <= z <= 2,
x = -2 : .2 : 2; y = -2 : .25 : 2; z = -2 : .16 : 2;
[X, Y, Z] = meshgrid(x, y, z);
V = X .* exp(-X .^2 - Y .^2 - Z .^2); % Розмір V становить 17 х 21 х 26 slice(x, y, z, v, [2], [2], [ -0.75 0.5], length(x)), grid
WATERFALL |
Тривимірна поверхня |
|
|
Синтаксис:
waterfall(X, Y, Z, C) waterfall(x, y, Z, C ) waterfall(Z, C) waterfall(X, Y, Z) waterfall(x, y, Z) waterfall(Z)
Опис:
Команда waterfall (X, Y, Z, C) будує поверхню для значень масиву Z, визначених на множині значень масивів X і Y.Вона аналогічна команді mesh, але не промальовує ребра сітки.
30