8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
            
Раздел: Документация

0 ... 50 51 52 53 54 55 56 ... 365

MATLAB позволяет построить поверхность, состоящую из линий уровня, при помощи функции contourз. Эту функцию можно использовать так же, как и описанные выше mesh, surf, meshc и surf с с тремя аргументами. При этом число линий уровня выбирается автоматически. Имеется возможность задать четвертым аргументом в contour3 либо число линий уровня, либо вектор, элементы которого равны значениям функции, отображаемым в виде линий уровня. Задание вектора удобно, когда требуется исследовать поведение функции в некоторой области ее значений (срез функции). Постройте, например, поверхность, состоящую из линий уровня, соответствующих значениям функции от 0 до 0.5 с шагом 0.01:

» levels = 0:0.01:0.5;

» contour3(X, Y, Z, levels)

» colorbar

Результат приведен на рис. 3.33.

Рис. 3.33. График среза функции, состоящий из линий уровня (contour3)

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

Контурные графики

MATLAB предоставляет возможность получать различные типы контурных графиков при помощи функций contour и contourf. Разберем их возможно-


сти на примере функции из предыдущего раздела. Использование contour с гремя аргументами

» contour(X, Y, Z)

приводит к графику, изображенному на рис. 3.34, на котором показаны линии уровня на плоскости ху.

@

§

1)

6

1 и

\

О

О

Л, , — 1

-1 -ОВ -06 -0.4 -02 0 0.2 0.4 ОБ 08 1

Рис. 3.34. Линии уровня функции (contour)

Такой график является малоинформативным, он не позволяет узнать значения функции на каждой из линий уровня. Использование команды colorbar также не позволит точно определить значения функции. Каждую линию уровня можно снабдить ярлыком с соответствующим значением исследуемой функции при помощи определенной в MATLAB функции clabel. Функция clabel вызывается с двумя аргументами: матрицей, содержащей информацию о линиях уровня и указателем на график, на котором следует нанести разметку. Нам пока ничего не говорят эти слова. Про указатели будет сказано в главах, посвященных созданию собственных приложений, а про структуру матрицы с информацией о линиях уровня можно узнать при помощи help. Оказывается, пользователю не нужно самому создавать аргументы clabel. Функция contour, вызванная с двумя выходными параметрами, не только строит линии уровня, но и находит требуемые для clabel параметры. Используйте contour с выходными аргументами (в матрице CMatr содержится информация о линиях уровня, а в векторе h — указатели). За-


вершите вызов contour точкой с запятой для подавления вывода на экран значений выходных параметров и нанесите на график сетку:

» [CMatr, h] = contour(X, Y, Z); » clabel[CMatr, hi >> grid on

Полученный график приведен на рис. 3.35.

-1 -0.8 -0.6 -0.4 -0 2 0 0.2 0.4 0 6 0.6 1

Рис. 3.35. Маркированные линии уровня (contour, clabel)

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

Наглядную информацию об изменении функции дает заливка прямоугольной области определения цветом, зависящим от значения функции в точках плоскости. Для построения таких графиков предназначена функция contourf, использование которой не отличается от применения contour. В следующем примере выводится график, изображенный на рис. 3.36, который состоит из двадцати линий уровня, а промежутки между ними заполнены цветами, соответствующими значениям исследуемой функции:

» contourf(X, Y, Z, 20) » colorbar

б Зек 13 i



0 ... 50 51 52 53 54 55 56 ... 365