Создание массивов данных для трехмерной графики
Трехмерные поверхности обычно описываются функцией двух переменных
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)
Рекомендуем читателю опробовать действие этого примера.