Surface plot problem with mesh

9 vues (au cours des 30 derniers jours)
Danila Zharenkov
Danila Zharenkov le 10 Avr 2014
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

Réponse acceptée

Mischa Kim
Mischa Kim le 10 Avr 2014
Danila, remove
shading interp;
  6 commentaires
Mischa Kim
Mischa Kim le 11 Avr 2014
Modifié(e) : Mischa Kim le 11 Avr 2014
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.
Danila Zharenkov
Danila Zharenkov le 12 Avr 2014
Thanks! That works.

Connectez-vous pour commenter.

Plus de réponses (2)

Danila Zharenkov
Danila Zharenkov le 10 Avr 2014
I was trying to remove shading. Here's the result
It's funny, I can't understand what going on with this plot.
  1 commentaire
Mischa Kim
Mischa Kim le 10 Avr 2014
Please add comments as comments, not answers.

Connectez-vous pour commenter.


Kelly Kearney
Kelly Kearney le 10 Avr 2014
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);

Community Treasure Hunt

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

Start Hunting!

Translated by