Как построить трехмерный график в матлабе
Перейти к содержимому

Как построить трехмерный график в матлабе

  • автор:

2D и 3D-графики

Чтобы построить двумерные графики, используйте plot функция. Например, постройте синусоидальную функцию по вектору с линейно распределёнными значениями значений от 0 до 2 π :

x = linspace(0,2*pi); y = sin(x); plot(x,y)

Figure contains an axes object. The axes object contains an object of type line.

Можно подписать оси и добавить заголовок.

xlabel("x") ylabel("sin(x)") title("Plot of the Sine Function")

Figure contains an axes object. The axes object with title Plot of the Sine Function contains an object of type line.

Путем добавления третьего входного параметра в plot функция, можно построить те же переменные с помощью красной пунктирной линии.

plot(x,y,"r--")

Figure contains an axes object. The axes object contains an object of type line.

«r—» спецификация линии . Каждая спецификация может включать символы для цвета линии, стиля и маркера. Маркером является символ, который появляется в каждой нанесенной на график точке данных, такой как + O , или * . Например, » g:*» задает рисование зеленых точек линии с * маркеры.

Заметьте, что заголовки и метки, которые вы задали для первого графика, больше не находятся в окне текущей фигуры. По умолчанию MATLAB® очищает окно рисунка каждый раз, когда вы вызываете функцию построения графика, сбрасывая оси и другие элементы, чтобы подготовить отображение нового графика.

Чтобы добавить графики в существующее окно рисунка, используйте hold on . Пока вы не используете hold off или закройте окно, все графики появляются в окне текущей фигуры.

x = linspace(0,2*pi); y = sin(x); plot(x,y) hold on y2 = cos(x); plot(x,y2,":") legend("sin","cos") hold off

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent sin, cos.

3-D Графики

3D графики обычно отображают поверхность, заданную функцией в двух переменных, z = f ( x , y ) . Например, вычислить z = x e — x 2 — y 2 учитывая векторы строки и столбца x и y с 20 точками каждый в области значений [-2,2].

x = linspace(-2,2,20); y = x'; z = x .* exp(-x.^2 - y.^2);

Затем создайте объемную поверхностную диаграмму.

surf(x,y,z)

Figure contains an axes object. The axes object contains an object of type surface.

Оба surf функционируйте и его компаньон mesh отобразите поверхности в трех измерениях. surf отображения и соединительные линии и полигоны поверхности в цвете. mesh создает каркасные поверхности, которые окрашивают только соединительные линии.

Несколько графиков

Можно отобразить несколько графиков в различных частях того же окна с помощью любого tiledlayout или subplot .

tiledlayout функция была введена в R2019b и обеспечивает больше управления метками и располагающий с интервалами, чем subplot . Например, создайте размещение 2 на 2 в рамках окна рисунка. Затем вызовите nexttile каждый раз вы хотите график появиться в следующей области.

t = tiledlayout(2,2); title(t,"Trigonometric Functions") x = linspace(0,30); nexttile plot(x,sin(x)) title("Sine") nexttile plot(x,cos(x)) title("Cosine") nexttile plot(x,tan(x)) title("Tangent") nexttile plot(x,sec(x)) title("Secant")

Figure contains 4 axes objects. Axes object 1 with title Sine contains an object of type line. Axes object 2 with title Cosine contains an object of type line. Axes object 3 with title Tangent contains an object of type line. Axes object 4 with title Secant contains an object of type line.

Если вы используете релиз ранее, чем R2019b, смотрите subplot .

Открытый пример

У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?

Документация MATLAB

Поддержка

  • MATLAB Answers
  • Помощь в установке
  • Отчеты об ошибках
  • Требования к продукту
  • Загрузка программного обеспечения

© 1994-2021 The MathWorks, Inc.

  • Условия использования
  • Патенты
  • Торговые марки
  • Список благодарностей

Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика

1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.

2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.

3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.

4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.

5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.

Создание массивов данных для трехмерной графики 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 — копиями вектора у.

Как построить 3D график в Matlab

функция z=xy

Построим график в среде Matlab для трехмерной функции:

Справа указателем мыши выделяем все три переменные и правой клавишей нажимаем на них
Plot catalog
появляется контекстное меню, нажимаем на Plot Catalog (или More Plots). Появляется окно Plot catalog, выбираем 3-D surfaces и функцию вида 3D графика, например surf(z,y,x) (также можно выбрать surfс(z,y,x), surfl(z,y,x), mesh(z,y,x), meshc(z,y,x), meshz(z,y,x), waterfall(z,y,x), contour(z,y,x)) и жмём Plot.
Matlab surf 3d график
3d график функции

3D график функции

7729

Построение графиков поверхностей MatLab

Команда plot3(. ) является аналогом команды plot (. ), но относится к функции двух переменных z(x, у). Она строит аксонометрическое изображение трехмерных поверхностей и представлена следующими формами:

plot3(x.y,z) — строит массив точек, представленных векторами х, у и z, соединяя их отрезками прямых. Эта команда имеет ограниченное применение;

plot3(X,Y,Z), где X, Y и Z — три матрицы одинакового размера, строит точки с координатами X(i.:), Y(i,:) и Z(i,:) и соединяет их отрезками прямых.

Ниже дан пример построения трехмерной поверхности, описываемой функцией

График этой поверхности показан на рис. 6.18.

Рис. 6.18. График поверхности, построенный линиями

plot3 (X. Y, Z, S) — обеспечивает построения, аналогичные рассмотренным ранее, но со спецификацией стиля линий и точек, соответствующей спецификации команды plot. Ниже дан пример применения этой команды для построения поверхности кружками:

График поверхности, построенный кружками, показан на рис. 6.19.

Рис. 6.19. График поверхности, построенный разноцветными кружками

plot3(xl ,yl.zl, sl.х2,у2.z2. s2. хЗ,уЗ.z3,s3. )— строит на одном рисунке графики нескольких функций zl(xl ,yl), z2(x2,y2) и т. д. со спецификацией линий и маркеров каждой из них.

Пример применения последней команды дан ниже:

График функции, соответствующей последнему примеру, представлен на рис. 6.20.

Рис. 6.20. График функции в сетчатом представлении

В данном случае строятся два графика одной и той же функции с взаимно перпендикулярными образующими линиями. Поэтому график имеет вид сетки без окраски ее ячеек (напоминает проволочный каркас фигуры).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *