Создание
массивов данных для трехмерной графики
Трехмерные
поверхности обычно описываются функцией двух переменных
z(x, у).
Специфика
построения трехмерных графиков требует не просто задания ряда значений
х
и
у,
то есть векторов х и у. Она требует определения для X и Y двумерных
массивов — матриц. Для создания таких массивов служит функция meshgrid. В основном
она используется совместно с функциями построения графиков трехмерных поверхностей.
Функция meshgrid записывается в следующих формах:
-
[X.Y]
= meshgrid(x) — аналогична [X.Y] = meshgrid(x.x);
-
[X.Y.Z]
= meshgrid(x.y,z) — возвращает трехмерные массивы, используемые для вычисления
функций трех переменных и построения трехмерных графиков;
-
[X.Y]
= meshgrid(x.y) — преобразует область, заданную векторами х и у, в массивы
X и Y, которые могут быть использованы для вычисления функции двух
переменных и построения
трехмерных графиков. Строки выходного массива X являются копиями вектора
х; а столбцы Y — копиями вектора у.
Пример:
»
[X.Y] = meshgnd(l:4.13:17)
X =
|
|
1
|
2
|
3
|
4
|
|
|
1
|
2
|
3
|
4
|
|
|
1
|
2
|
3
|
4
|
|
|
1
|
2
|
3
|
4
|
|
|
1
|
2
|
3
|
4
|
|
|
Y=
|
|
|
|
|
|
13
|
13
|
13
|
13
|
|
|
14
|
14
|
14
|
14
|
|
|
15
|
15
|
15
|
15
|
|
|
16
|
16
|
16
|
16
|
|
|
17
|
17
|
17
|
17
|
|
Приведем еще
один пример применения функции meshgrid:
»
[X.Y] = meshgrid(-2:.2:2. -2:.2:2);
Такой вызов
функции позволяет задать опорную плоскость для построения трехмерной поверхности
при изменении дгиг/от-2до2с шагом 0.2. Дополнительные примеры применения функции
meshgrid будут приведены далее при описании соответствующих команд. Рекомендуется
ознакомиться с также командами surf и slice (ломтик).
Функция ndgrid
является многомерным аналогом функции meshgrid:
-
[Х1.Х2.ХЗ,...]
= ndgrid(xl,x2,x3....) — преобразует область, заданную векторами xl.x2.x3...,
в массивы Х1.Х2.ХЗ..., которые могут быть использованы для вычисления функций
нескольких переменных и многомерной интерполяции, i-я размерность выходного
массива xi является копией вектора xi;
-
[XI.Х2....]
= ndgrid(x) - аналогична [XI.Х2....] = ndgrid(x,x,...). Пример применения
функции ndgrid представлен ниже:
»[Х1.'Х2]
= ndgrid(-2:.2:2. -2:.2:2);
»Z = XI .* ехр(-Х1."2 - Х2.*2);
»mesh(Z)
Рекомендуем
читателю опробовать действие этого примера.
Содержание раздела