- •Содержание
- •Введение
- •1. Описание панели инструментов
- •1.1. Командное окно
- •1.2. Окно редактирования и отладки
- •1.3. Окно рабочей области
- •2.1. Переменные, константы и специальные символы
- •1.4. Пути доступа к m-файлам
- •1.5. Окно справки Help Window
- •2. Переменные, операторы и функции системы matlab
- •2.2. Арифметические операторы
- •2.3. Операторы и функции отношения
- •2.4. Логические операторы
- •2.5. Элементарные функции
- •2.6. Массивы и матрицы
- •3. Графические средства системы matlab
- •3.1. Основные операторы и функции графики
- •3.2. Окно графики
- •3.3. Графика в прямоугольных координатах
- •3.4. Масштабирование осей и вывод на экран
- •3.5. Графика в полярных координатах
- •3.6. Построение столбиковых даграмм и гистограмм
- •3.7. Отображение трехмерных поверхностей
- •4. Программирование в системе matlab
- •4.1. Структура m-файла сценария и функции
- •4.2. Ввод и вывод иформации
- •4.3. Форматы вывода чисел
- •4.4. Функции nargin и nargout
- •4.5. Локальные и глобальные переменные
- •4.6. Управление последовательностью выполнения
- •4.7. Ускорение вычислений
- •4.8. Примеры программирования с использованием средств пакета Matlab
- •5. Система simulink
- •5.1. Библиотека модулей
- •5.2. Раздел Sinks (получатели сигналов)
- •5.3. Раздел Sources (источники сигналов)
- •5.4. Раздел Continuous (аналоговые блоки)
- •5.5. Раздел Discrete (дискретные блоки)
- •5.6. Раздел Function & Tables (функции и таблицы)
- •5. Логические операторы (&& | | !).
- •5.7. Раздел Math (математические блоки)
- •5.8. Раздел Nonlinear (нелинейные компоненты)
- •5.9. Раздел Signal & Systems (блоки преобразования сигналов и создания систем)
- •5.10. Применение системы Simulink в задачах моделирования динамических систем
- •Литература
3.7. Отображение трехмерных поверхностей
Операция plot3 являются трехмерными аналогами функции plot (plot3(x, y, z), где x, y, z - одномерные массивы одинакового размера, строит точки с координатами x(i), y(i), z(i) и соединяет их прямыми линиями). Операция plot3(X, Y, Z), где X, Y, Z - двумерные массивы одинакового размера, строит точки с координатами x(i, :), y(i, :), z(i, :) для каждого столбца и соединяет их прямыми линиями.
Операция plot3(x, y, z, sp) позволяет выделить график функции z(x, y), указав способ отображения линии, способ отображения точек, цвет линий и точек с помощью строковой переменной sp, которая может включать до трех символов в соответствии с таблицей 3.1. Операция plot3(x1, y1, z1, sp1, x2, y2, z2, sp2, ...) позволяет объединить на одном графике несколько функций z1(x1, y1), z2(x2, y2), ..., определив для каждой из них свой способ отображения. Обращение к plot3 вида plot3(x, y, z, sp1, x, y, z, sp2) позволяет для графика z(x, y) определить дополнительные свойства, для указания которых применения одной строковой переменной sp1 недостаточно, например, при задании разных цветов для линии и для точек на ней.
Функция [X, Y] = meshgrid(x, y) задает сетку на плоскости x-y в виде двумерных массивов X, Y, которые определяются одномерными массивами x и y. Строки массива X являются копиями вектора x, а столбцы - копиями вектора y. Формирование таких массивов упрощает вычисление функций двух переменных, позволяя применять операции над массивами. Функция [X, Y] = meshgrid(x) представляет собой упрощенную форму записи для функции [X, Y] = meshgrid(x, x).
Пример
3.7. Построить
график функции
в трехмерном пространстве с использованием
операции plot3.
%График поверхности
[X, Y] = meshgrid([-10:0.5:10]);
Z =sin(sqrt(X.^2+Y.^2+1))./sqrt(X.^2+Y.^2+1);
plot3(X, Y, Z)
Рис. 3.8. График поверхности
Операция mesh(X, Y, Z, C) выводит на экран сетчатую поверхность для значений массива Z, определенных на множестве значений массивов X и Y. Цвета узлов поверхности задаются массивом C. Цвета ребер определяются свойством EdgeColor объекта surface. Можно задать одинаковый цвет для всех ребер, определив его в виде вектора [r g b] интенсивности трех цветов (красного, зеленого, синего). Если определить спецификацию none, то ребра не будут прорисовываться. Если определить спецификацию flat, то цвет ребер ячейки определяется цветом того узла, который был первым при обходе этой ячейки. Поскольку одни и те же ребра обходятся несколько раз, то цвета будут замещаться. Если определить спецификацию interp, то будет реализована линейная интерполяция цвета между вершинами ребра. Операция mesh(x, y, Z, C) выполняет ту же функцию, но вместо двумерных массивов X, Y использует их одномерные проекции, так что если length(x) = n, а length(y) = m, то [m, n] = size(Z). В этом случае узлы сетчатой поверхности определяются тройками {x(j), y(i), Z(i, j)}, где вектор x определяет столбцы массива Z, а y - строки. Операция meshc дополнительно строит проекцию линий постоянного уровня, meshz дополнительно строит плоскость отсчета на нулевом уровне, закрывая поверхность, лежащую ниже этого уровня.
Пример 3.8. Построить график функции в трехмерном пространстве с использованием операции mesh.
%График поверхности
[X, Y] = meshgrid([-10:0.5:10]);
Z =sin(sqrt(X.^2+Y.^2+1))./sqrt(X.^2+Y.^2+1);
mesh(X, Y, Z)
Рис. 3.9 - График поверхности
Операция surf(X, Y, Z, C) выводит на экран сетчатую поверхность для значений массива Z, определенных на множестве значений массивов X и Y(цвет ячейки определяется массивом C), а операция surf(X, Y, Z) работает аналогично предыдущей, где С=Z. Цвет в этом случае задается высотой ячейки поверхности. Операции surf и mesh дают достаточно наглядное представление поверхности, это видно из сравнения рис 3.5 и 3.6.
Более полное описание графических возможностей представления трехмерных поверхностей можно найти в [1].
