Создание массивов данных для трехмерной графики
Трехмерные поверхности обычно описываются функцией двух переменных 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(1:4.13:17) X =1 2 3 41 2 3 41 2 3 41 2 3 41 2 3 4Y=13 13 13 1314 14 14 1415 15 15 1516 16 16 1617 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….) – преобразует область, заданную векторами x1.x2.x3…, в массивы Х1.Х2.Х3…, которые могут быть использованы для вычисления функций нескольких переменных и многомерной интерполяции, i-я размерность выходного массива xi является копией вектора xi;
- [XI.Х2….] = ndgrid(x) – аналогична [XI.Х2….] = ndgrid(x,x,…). Пример применения функции ndgrid представлен ниже:
>>[X1.X2] = ndgrid(-2:.2:2. - 2:.2:2); >>Z = X1*exp(-X1*2 - X2*2); >>mesh(Z)Рекомендуем читателю опробовать действие этого примера.
