- •Утверждено на заседании кафедры электротехники, информатики и компьютерных технологий 30.10.03.
- •Гистограммы векторных данных
- •Представление матричных данных
- •Графики функций
- •Графики в линейном масштабе
- •Графики в логарифмических масштабах
- •Изменение свойств линий
- •Оформление графиков
- •Графики параметрических и кусочно-заданных функций
- •Графики функций двух переменных
- •Трехмерные графики функций
- •Контурные графики
- •Оформление графика
- •Построение параметрически заданных поверхностей и линий
- •Работа с несколькими графиками
- •Вывод графиков в отдельные окна
- •Вывод нескольких графиков на одни оси
- •Несколько графиков в одном графическом окне
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Библиографический список
- •Свойства линии
- •Цветовые палитры
Построение параметрически заданных поверхностей и линий
MATLAB позволяет строить трехмерные линии, определенные формулами
x=x(t), y=y(t), z=z(t), t [a,b]
и поверхности, задаваемые зависимостями
x=x(u,v), y=y(u,v), z=z(u,v), u [a,b], v [c,d].
Функция plot3 визуализирует параметрически заданные линии, используя в качестве аргументов векторы, содержащие значения функций х(t), у(t) и z(t), вычисленные для значений параметра t.
Сначала следует сформировать вектор t, что проще всего сделать, используя заполнение с постоянным шагом при помощи двоеточия, а затем вычислить и записать в векторы соответствующие значения функции.
!! Постройте график линии
x=e-|t-50|/50sint, y= e-|t-50|/50cost, z=t, t [0,100]
Также имеется возможность изменять тип и цвет линии, добавлять маркеры.
Например, рlot (х,у,z,'r:') рисует красную пунктирную линию.
Параметрически заданную поверхность можно построить при помощи любой из функций, предназначенных для отображения трехмерных графиков. Важно только правильно подготовить аргументы. Дело в том, что функции x(u,v) и у(u,v) могут быть многозначны, что надо учесть при создании матриц с информацией о расположении узлов сетки на области построения и матрицы, содержащей значения функции z(u,v) в этих точках.
!! Заданы зависимости
x(u,v)=0.3·u·cosv, y(u,v)=0.3·u·sinv, z(u,v)=0.6·u,
u,v [-2π;2π].
!! Сгенерируйте при помощи двоеточия вектор-столбец и вектор-строку, содержащие значения параметров на заданном интервале (важно, что u — вектор-столбец, а v — вектор-строка), с шагом 0.1 π.
!! Сформируйте матрицы x, у, содержащие значения функций х(и,v), y(u,v) в точках, соответствующих значениям параметров.
!! Сформируйте матрицу z.
!! Отобразите поверхность, заданную этими зависимостями.
!! Постройте самостоятельно прозрачную каркасную поверхность эллипсоида, заданного соотношениями
x(u,v)=cosu·cosv, y(u,v)=0.7·cosu·sinv, z(u,v)=0.8·sinu,
u,v [-2π;2π].
Все способы построения трехмерных графиков, описанные выше, изменяют цвет поверхности в зависимости от значений функции, что приводит к поверхности, выглядящей не совсем естественно. В то же время MATLAB позволяет получить очень наглядное изображение поверхности в трехмерном пространстве, освещенной с одной или нескольких сторон.
Работа с несколькими графиками
Во всех рассмотренных ранее примерах графики выводились в специальное графическое окно с заголовком Figure №1. При следующем построении графика предыдущий пропадал, а новый выводился в то же самое окно.
MATLAB предоставляет следующие возможности работы с несколькими графиками:
вывод каждого графика в свое окно;
вывод нескольких графиков в одно окно (на одни координатные оси);
отображение в пределах одного окна нескольких графиков, каждого на своих осях.
Вывод графиков в отдельные окна
Команда figure(без аргументов), определенная в MATLAB, служит для создания пустого графического окна и отображения его на экране. Окно становится текущим, т.е. все последующие графические функции будут осуществлять построение графиков в этом окне. Для получения нового графического окна следует снова использовать figure. Например, если последовательно построить графики в двух графических окнах: Figure №1 и Figure №2. Окно Figure №2 будет текущим, т. к. было создано последним Команды, набираемые далее, приведут к изменениям именно в этом окне. Для того чтобы сделать графическое окно Figure№1 текущим, следует щелкнуть на нем мышкой, вернуться в рабочую среду MATLAB и продолжать ввод команд. Команды повлекут изменения в окне Figure №1. Для очистки всего текущего окна используется команда сlf (сокращение от сlеаr figure), а для того, чтобы убрать только график, но оставить оси, заголовок и названия осей, следует применить сlа (сокращение от сlеаr ахеs).
!! Постройте графики функций y1(x) = sinx∙еx на отрезке [-π, π] с шагом 0.1π и y2(x) = cosx∙еx на отрезке [-2π,2 π] с шагом 0.1π.
Вышеописанным способом можно получить сколько угодно графических окон и вывести в них графики различных функций или визуализировать векторные и матричные данные. Однако для изменения того или иного графика придется искать его окно на экране и делать его текущим при помощи щелчка мыши. Есть более универсальный и удобный способ работы несколькими окнами. При создании каждого нового графического окна при помощи figure следует вызвать ее с выходным аргументом. Этот аргумент называется в MATLAB указателем на графическое окно. Значением выходного аргумента является число, совпадающее с номером графического окна, того чтобы сделать графическое окно текущим, следует вызвать, применив в качестве входного аргумента указатель на требуемое графическое окно.
Для того чтобы очистить графическое окно с определенным указателем, следует использовать команду clf, аргументом которой будет имя этого указателя.
