Как построить 3D график в Matlab
Построим график в среде Matlab для трехмерной функции:
Справа указателем мыши выделяем все три переменные и правой клавишей нажимаем на них
появляется контекстное меню, нажимаем на 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.
3D график функции
8212
Как построить 3D график в Matlab
Построим график в среде Matlab для трехмерной функции:
Справа указателем мыши выделяем все три переменные и правой клавишей нажимаем на них
появляется контекстное меню, нажимаем на 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.
3D график функции
8211
2D и 3D-графики
Чтобы построить двумерные графики, используйте plot функция. Например, постройте синусоидальную функцию по вектору с линейно распределёнными значениями значений от 0 до 2 π :
x = linspace(0,2*pi); y = sin(x); plot(x,y)
Можно подписать оси и добавить заголовок.
xlabel("x") ylabel("sin(x)") title("Plot of the Sine Function")
Путем добавления третьего входного параметра в plot функция, можно построить те же переменные с помощью красной пунктирной линии.
plot(x,y,"r--")
«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
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)
Оба 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")
Если вы используете релиз ранее, чем R2019b, смотрите subplot .
Открытый пример
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Документация MATLAB
Поддержка
- MATLAB Answers
- Помощь в установке
- Отчеты об ошибках
- Требования к продукту
- Загрузка программного обеспечения
© 1994-2021 The MathWorks, Inc.
- Условия использования
- Патенты
- Торговые марки
- Список благодарностей
Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.
Трехмерный график
Допустим нам нужно построить трехмерный график на интервале от 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)