Иллюстрированный самоучитель по Matlab

         

Создание массивов данных для трехмерной графики


Трехмерные поверхности обычно описываются функцией двух переменных

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)

Рекомендуем читателю опробовать действие этого примера.



Содержание раздела