Surface plot generation for a 3-variable function

9 次查看(过去 30 天)
Greetings, Could you please advise how to generate a surface plot for a 3- variable function. (The meshgrid and function are working properly but the surf() function keeps throwing out error and no graph appears)
u=1000:4:3000;
v=400:1.6:1200;
w=0.25:0.001:0.75;
[x,y,z]=meshgrid(u,v,w);
g=x*x+y*y-z*z;
surf(u,v,g)
Thanks!
Also Could you let me know how to plot surf(u,w,g) and surf (v,w,g) in separate graphs.

回答(2 个)

Walter Roberson
Walter Roberson 2019-4-8
surf can only be used for rectangular (2d) data arrays.
For 3d data arrays your choices include
  • isosurface
  • slice
  • volumeviewer or underlying functionality can be called directly in very recent releases
  • vol3d v2 from File Exchange
  • scatter3 and encode the value by color or size

VBBV
VBBV 2023-6-3
Try to use a for loop to plot the resulting expression in 3rd dimension as shown below since surf function plots 2D matrices only
u=100:5:300;
v=40:1.6:120;
w=0.25:0.1:0.75;
[x,y,z]=meshgrid(u,v,w);
g=x.^2+y.^2-z.^2;
hold on
for k = 1:length(size(z,3))
surf(u,v,g(:,:,k))
end
colorbar
shading interp
view(3)
grid

类别

Help CenterFile Exchange 中查找有关 Surface and Mesh Plots 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by