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

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

  • автор:

Как построить 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 график функции

8212

Как построить 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 график функции

8211

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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.

Трехмерный график

Author24 — интернет-сервис помощи студентам

Допустим нам нужно построить трехмерный график на интервале от 0 до 100.

Насколько я понимаю, если X и Y это веторы, то Z это должна быть матрица. Если у вас есть возможность помояь, буду очень признателен. Заранее спасибо!

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Трехмерный график
Всем доброго дня! Подскажите, пожалуйста, как построить трехмерный график (не могу сам.

Трехмерный график по точкам
Всем доброго времени суток. Очень нужно построить объемный график по точкам, а в маткаде это не.

трехмерный график аналитической зависмости
Здраствуйте! Очень надеюсь на вашу помощь а то у самой ничего не получаеться! Нужно построить.

Построить трехмерный график функции
Здравствуйте! Помогите пожалуйста. Мучаюсь уже 3 дня. Надо построить 3D график интенсивности.

119 / 119 / 4
Регистрация: 12.06.2012
Сообщений: 130

Вообще это наверное кривая заданная параметрически, где в качестве параметра одна координата — X.
Если это верно, то Z — тоже вектор.

1 2 3 4 5
X=0:100; Y=2*X; Z=X.^2; plot3(X,Y,Z); grid on;

Добавлено через 6 минут
Если интересует поверхность — то наверное должны быть такие условия:
функция Z(X,Y)
и диапазоны для построения по X (Xmin; Xmax) и по Y (Ymin; Ymax)

Регистрация: 22.11.2009
Сообщений: 174
Интересует поверхность.
Змеюка одышечная
9864 / 4595 / 178
Регистрация: 04.01.2011
Сообщений: 8,556

В трёхмерном пространстве уравнение Y = 2 * X будет задавать плоскость, а уравнение Z = X ^ 2 цилиндрическую поверхность с параболой в основании.

119 / 119 / 4
Регистрация: 12.06.2012
Сообщений: 130

vetvet, предложенный Вами вариант.

1 2 3 4 5 6 7 8 9
% поверхности [X,Y] = meshgrid([0:100] ,[0:200]); Z=X.^2; mesh(X, Y, Z); hold on; [X,Z] = meshgrid([0:100] ,[0:10000]); Y=2*X; mesh(X, Y, Z); grid on;

Только боюсь что нужна ограниченная цилиндрическая поверхность, хотя Don Vito и не указал в каком подпространстве она нужна. Потом попробую построить Z=X^2 при y
119 / 119 / 4
Регистрация: 12.06.2012
Сообщений: 130

1 2 3 4 5 6
clc clear [X,Y] = meshgrid([0:100] ,[0:200]); Y(Y>2*X)=2*X(Y>2*X); Z=X.^2; mesh(X, Y, Z);

Регистрация: 02.04.2015
Сообщений: 3

Доброго времени суток!

Требуется ваша помощь с построением трехмерного графика в Матлабе.
Постараюсь максимально ясно изложить свою задачу.

В рамках своей научной статьи по ВОЛС,занимаюсь исследованием работы оптического усилителя EDFA в 8-ми канальной системе WDM.

В результате симуляций были получены следующие замеры: показатели усиления (G,dB)
для каждого канала при определенной длине волны lambda = [1554.94 1554.13 1553.33 1552.52 1551.72 1550.92 1550.12 1549.32] и мощностях накачки 200, 300, 400, 500 мВт.Обобщенная таблица с замерами выглядит примерно так, как в приложении.

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

Видела на форуме много примеров, но там графики сироились по функциям в основном а мне требудется отобразить уже готовые результаты.
Буду очень благодарна за помощь!
Заранее большое спасибо!

142 / 142 / 37
Регистрация: 14.12.2013
Сообщений: 221
viterbi777,

1 2 3 4 5 6 7 8 9 10 11 12
lambda = [1554.94 1554.13 1553.33 1552.52 1551.72 1550.92 1550.12 1549.34]; piee = [200 300 400 500]; Gain = [ 25.08 26.78 28.04 29.01 24.86 26.59 27.81 28.75 24.65 26.35 27.69 28.53 24.38 26.09 27.37 28.33 24.09 25.90 27.15 28.15 23.80 25.66 29.90 27.94 23.64 25.49 26.78 27.80 23.40 25.28 26.62 27.67]; [piee,lambda]=meshgrid(piee,lambda); surf(piee,lambda,Gain)

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

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