Plotting a surface in MATLAB
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Anthont Goddard
am 3 Okt. 2015
Kommentiert: Star Strider
am 3 Okt. 2015
I would like to plot
f(x,y) = x^2*y/(x^2 + y^2)
How do I do this in matlab?
2 Kommentare
Akzeptierte Antwort
Star Strider
am 3 Okt. 2015
You need to use the meshgrid (or equivalently, ndgrid) function:
x = linspace(-1, 1);
y = linspace(-2, 2);
[X,Y] = meshgrid(x,y);
f = @(x,y) x.^2.*y./(x.^2 + y.^2);
figure(1)
surf(X,Y,f(X,Y))
grid on
I created a function for ‘f’ here, but you could as easily use it simply as:
f = X.^2.*Y./(X.^2 + Y.^2);
and then plot as:
plot(X,Y,f)
I ‘vectorised’ your code to do element-wise operations. See the documentation on Array vs. Matrix Operations for a full discussion.
4 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Line Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!