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

MATLAB_03

.pdf
Скачиваний:
136
Добавлен:
21.04.2015
Размер:
513.29 Кб
Скачать

11

>> plot(x,y1,x,y2), grid, xlabel ('x'), legend('sin(x)','sqrt(x)')

6

 

 

 

 

 

 

 

 

 

 

 

 

sin(x)

5

 

 

 

 

 

sqrt(x)

 

 

 

 

 

 

4

 

 

 

 

 

 

3

 

 

 

 

 

 

2

 

 

 

 

 

 

1

 

 

 

 

 

 

0

 

 

 

 

 

 

-1

 

 

 

 

 

 

0

5

10

15

20

25

30

 

 

 

x

 

 

 

Рис. 4. Графики, выведенные на одних координатных осях с размещением легенды

Теперь добавим <параметры управления>, управляющие свойствами графиков. Условно они разделены на две группы:

LineSpec — свойства без стандартных имен;

PropertyName — свойства со стандартными именами.

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

Добавим управляющие параметры группы LineSpec для графиков функций, представленных на рис. 3:

>>figure

>>subplot(2,2,1), plot(x,y1,'-r'), grid, title('y1(x) = sin(x)')

>>subplot(2,2,2), stem(x,y1,'fill','-m.'), grid, title('y1(x) = sin(x)')

>>subplot(2,2,3), plot(x,y2,'--g'), grid, xlabel ('x')

>>title('y2(x) = sqrt(x)')

>>subplot(2,2,4), stem(x,y2,'fill','-ks'), grid, xlabel ('x')

>>title('y2(x) = sqrt(x)')

Выведенные графики представлены на рис. 5.

12

 

y1(x) = sin(x)

 

 

y1(x) = sin(x)

 

1

 

 

 

1

 

 

 

0.5

 

 

 

0.5

 

 

 

0

 

 

 

0

 

 

 

-0.5

 

 

 

-0.5

 

 

 

-1

 

 

 

-1

 

 

 

0

10

20

30

0

10

20

30

 

y2(x) = sqrt(x)

 

 

y2(x) = sqrt(x)

 

6

 

 

 

6

 

 

 

4

 

 

 

4

 

 

 

2

 

 

 

2

 

 

 

0

 

 

 

0

 

 

 

0

10

20

30

0

10

20

30

 

 

x

 

 

 

x

 

Рис. 5. Графики с добавленными параметрами группы LineSpec

Параметры группы PropertyName имеют следующие стандартные имена:

LineWidth — толщина линии в пунктах (1 пункт ≈ 0,34 мм); задаются цифрой без апострофов, по умолчанию 0,5;

MarkerEdgeColor — цвет маркера; задается параметром из табл. 2 в апострофах; по умолчанию совпадает с цветом линий;

MarkerFaceColor — цвет закрашивания маркера (для замкнутых маркеров); задается параметром из табл. 2 в апострофах; ; по умолчанию совпадает с цветом линий;

MarkerSize — размер маркера в пунктах; задаются цифрой без апострофов, по умолчанию 7.

Добавим управляющие параметры группы PropertyName для графиков функций, представленных на рис. 5:

>>figure

>>subplot(2,2,1), plot(x,y1,'-r','LineWidth',2), grid

>>subplot(2,2,2), stem(x,y1,'fill','-m.','MarkerEdgeColor','k'),

grid

>>subplot(2,2,3), plot(x,y2,'--g','LineWidth',2), grid

>>subplot(2,2,4), stem(x,y2,'fill','-ks',...

>>'MarkerEdgeColor','r','MarkerSize',4), grid

Выведенные графики представлены на рис. 6.

13

1

 

 

 

1

 

 

 

0.5

 

 

 

0.5

 

 

 

0

 

 

 

0

 

 

 

-0.5

 

 

 

-0.5

 

 

 

-1

 

 

 

-1

 

 

 

0

10

20

30

0

10

20

30

6

 

 

 

6

 

 

 

4

 

 

 

4

 

 

 

2

 

 

 

2

 

 

 

0

 

 

 

0

 

 

 

0

10

20

30

0

10

20

30

Рис. 6. Графики с добавленными параметрами группы PropertyName

Функции plot и stem предназначены для построения графиков в линейном масштабе. На лабораторных работах будут рассмотрены функции с использованием логарифмического масштаба по одной из осей или обеим осям.

В MATLAB представлено большое разнообразие функций для построения специальных графиков. Познакомимся с тремя из них:

1.Функция hist —для построения гистограммы с простейшим форматом: hist(x)

где x — вектор.

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

Цвет столбцов выбирается по умолчанию или с помощью функции:

colormap('<символическое имя палитры>')

которая может ставиться до или после функции построения графика.

Символические имена палитр приведены в табл. 4.5 учебного пособия.

Построим гистограмму нормального белого шума длины 10000 с выбором палитры 'cool' — фиолетово-голубая (рис. 7):

>>figure

>>x = randn(1,10000);

>>hist(x), grid, title('Gaussian White Noise - hist')

>>colormap('cool')

14

Gaussian W hite Noise - hist

3000

 

 

 

 

 

 

 

 

2500

 

 

 

 

 

 

 

 

2000

 

 

 

 

 

 

 

 

1500

 

 

 

 

 

 

 

 

1000

 

 

 

 

 

 

 

 

500

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

-4

-3

-2

-1

0

1

2

3

4

Рис. 7. Гистограмма нормального белого шума

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

bar(x, width)

где x — вектор; width — ширина столбцов, по умолчанию 0,8, при ширине > 1

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

Построим столбцовую диаграмму 100 значений нормального белого шума

(рис. 8):

>>figure

>>x = randn(1,100);

>>bar(x), grid, title('Gaussian White Noise - bar')

>>colormap('flag')

15

Gaussian W hite Noise - bar

3

2

1

0

-1

-2

-3

0

20

40

60

80

100

120

Рис. 8. Cтолбцовая диаграмма нормального белого шума

3.Функция pie — для построения круговой диаграммы с простейшим форматом: pie(x,explode)

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

"вытаскивания" требуемых фрагментов.

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

Построим круговую диаграмму для 8 элементов вектора с "вытаскиванием"

наибольшего и наименьшего элементов (рис. 9):

>>figure

>>x = [0.1 0.8 0.2 0.3 0.4 0.9 0.5 0.6];

>>explode = [1 0 0 0 0 1 0 0];

>>pie(x,explode)

>>colormap('winter')

16

3%

16%

21%

13%

5%

8%

11%

24%

 

Рис. 9. Круговая диаграмма 8-элементного вектора

3.10. Трехмерная графика

Трехмерная графика предназначена для построения в трехмерном пространстве графиков функций z(x, y) .

Их построение начинается с формирования сетки на плоскости xOy с помощью функции:

[X,Y] = meshgrid(x,y)

где:

x,y — векторы, формирующие сетки по осям x и y ;

X,Y — матрицы одинакового размера, формирующие сетку на плоскости xOy; количество строк равно длине вектора y, а столбцов — длине вектора x.

Если векторы x и y одинаковы, то допускается короткий формат:

[X,Y] = meshgrid(x)

Средства оформления трехмерных графиков такие же, что и для двумерных (табл. 2), но с учетом дополнительной оси z добавляются функции:

zlabel('<текст>')

zlim([zmin zmax])

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

surf (X,Y,Z[,<параметры управления>])

где:

X, Y — матрицы, формирующие сетку на плоскости xOy с помощью функции meshgrid

Z — функция z(x, y) (вектор или матрица);

<параметры управления> — необязательные параметры, управляющие свойствами графика, такие же, как для двумерных графиков.

Палитра цветов графика выбирается с помощью функции colormap.

 

17

 

 

 

Используем функцию surf для построения графика функции

z = x2 + y 2 на

интервале по осям x и y , равном [−5; 5] , с одинаковыми шагами

x = y = 0, 25 .

Предварительно сформируем сетку на плоскости xOy с помощью функции meshgrid короткого формата (рис. 10):

>>figure

>>[X,Y] = meshgrid(-5:0.25:5);

>>Z = X.^2+Y.^2;

>>surf (X,Y,Z), title('Z = X.^2+Y.^2 - surf')

>>colormap('cool')

Z = X.2+Y .2 - surf

50

40

30

20

10

0

5

5

0

0

-5 -5

Рис. 10. Трехмерный график, построенный с помощью функции surf

Рассмотренные ранее <параметры управления> могут использоваться для управления свойствами трехмерных графиков, однако для них предусмотрены и дополнительные средства, в частности:

команда вывода на поле графика шкалы цветов: colorbar

которая обязательно ставится последней и устанавливает соответствие между значениями функции и их отображением цветом;

команда преобразования сетчатой поверхности в сплошную: shading interp

Используем эти команды для построения графика той же функции с выводом в отдельные поля текущего графического окна (рис. 11):

>>figure

>>[X,Y] = meshgrid(-5:0.25:5);

>>Z = X.^2+Y.^2;

>>subplot(2,1,1),surf (X,Y,Z), title('colorbar')

>>colormap('cool')

>>colorbar

>>subplot(2,1,2),surf (X,Y,Z), title(' shading interp')

>>shading interp

18

 

colorbar

 

 

 

50

50

 

40

 

 

30

 

 

20

0

 

10

5

 

0

 

5

0

0

 

 

-5 -5

 

 

shading interp

 

50

 

 

0

 

 

5

 

5

 

0

 

0

 

 

 

-5 -5

 

Рис. 11. Трехмерные графики с выводом шкалы цветов (верхний) и преобразованием сетчатой поверхности в сплошную (нижний)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]