Surface plot problem with mesh

9 次查看(过去 30 天)
Hello, I've got a code that solves pde system. As a result I've got matrix with values in different points (coordinate and time layer). Now I'm trying to plot the surface like this
figure
[x1,y1]=meshgrid(time,x);
surf(x1,y1,u(:,:),'EdgeColor','black');
colormap(copper)
set(gca,'linewidth',2)
shading interp;
grid on;
hold on;
where x and time are vectors of coordinate and time points, u is the result matrix. But the surface looks very strange.
How can I add the lines on this surface? Like this

采纳的回答

Mischa Kim
Mischa Kim 2014-4-10
Danila, remove
shading interp;
  6 个评论
Mischa Kim
Mischa Kim 2014-4-11
编辑:Mischa Kim 2014-4-11
Or simply down-sample the matrices. Would this work:
figure;
[x1,y1] = meshgrid(time,x);
xsam = 1:5:size(x1,1); % the 5 sets the lines spacing
ysam = 1:3000:size(x1,2);
surf(x1(xsam,ysam),y1(xsam,ysam),u(xsam,ysam),'EdgeColor','black');
colormap(copper);
You still got all the data (for analysis), for visualization the down-sampled plot should be sufficient.

请先登录,再进行评论。

更多回答(2 个)

Danila Zharenkov
Danila Zharenkov 2014-4-10
I was trying to remove shading. Here's the result
It's funny, I can't understand what going on with this plot.

Kelly Kearney
Kelly Kearney 2014-4-10
The wireframe function will give the effect you're looking for:
[x,y,z] = peaks(500);
surf(x,y,z);
shading flat;
wireframe(x,y,z,20);

类别

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

Community Treasure Hunt

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

Start Hunting!

Translated by