MATLAB Answers


How can i get a smooth curve for a singly curved shell ,surface plot for a 4*4 mesh.I cannot increase the mesh size.

 Co-ordinates      X          Y                  Z
                   0                   0   0.000000000000000
                   0   0.019050000000000   0.000000000000000
                   0   0.038100000000000   0.000000000000000
                   0   0.057150000000000   0.000000000000000
                   0   0.076200000000000   0.000000000000000
   0.025368945899734                   0   0.001269599062100
   0.025368945899734   0.019050000000000   0.001269599062100
   0.025368945899734   0.038100000000000   0.001269599062100
   0.025368945899734   0.057150000000000   0.001269599062100
   0.025368945899734   0.076200000000000   0.001269599062100
   0.050766112417292                   0   0.001692955556747
   0.050766112417292   0.019050000000000   0.001692955556747
   0.050766112417292   0.038100000000000   0.001692955556747
   0.050766112417292   0.057150000000000   0.001692955556747
   0.050766112417292   0.076200000000000   0.001692955556747
   0.076163278934849                   0   0.001269599062100
   0.076163278934849   0.019050000000000   0.001269599062100
   0.076163278934849   0.038100000000000   0.001269599062100
   0.076163278934849   0.057150000000000   0.001269599062100
   0.076163278934849   0.076200000000000   0.001269599062100
   0.101532224834583                   0   0.000000000000000
   0.101532224834583   0.019050000000000   0.000000000000000
   0.101532224834583   0.038100000000000   0.000000000000000
   0.101532224834583   0.057150000000000   0.000000000000000
   0.101532224834583   0.076200000000000   0.000000000000000


Is there a question of some kind of accuracy to be retained? Is there a data model to rely on? Or should the surface just be "whatever looks good" as long as it has those values at those particular locations?

Thank you for the reply. I want to get a smooth 3d surface plot for this mesh.I have used surf(X,Y,Z) but not getting a smooth curve on curved edges.


No products are associated with this question.

3 Answers

Answer by Walter Roberson
on 3 Jan 2013
 Accepted answer

Reduce the plot size until the largest axis is represented by adjacent pixels. The mesh plot will then be smooth.

Short of this, you need to decide what values the surface should have in-between your existing points, which will require doing a bunch of interpolation. You cannot, however, do interpolation without having an interpolating function. A linear interpolation function will not do you any good: that would result in a surface just as flat as you are already seeing.

If there are known equations for the datapoints, f(x,y), then you could apply the equation to the intermediate points. This could involve fitting some parameters of the equations.

If the equations for the datapoints are unknown, then you can choose an arbitrary interpolating function, for the sole purpose of making the surface look nice, without any concern about whether the values in-between are meaningful. There are routines available that help construct spline interpolations; people seem to like those routines. Myself I think they get badly overused, that people have entirely too much tendency to confuse the spline surface with being real information about the behavior of the function, but that's my opinion and others disagree. You could look at John D'errico's work in the File Exchange.


Answer by Lalit Patil on 3 Jan 2013



Answer by Azzi Abdelmalek
on 3 Jan 2013
Edited by Azzi Abdelmalek
on 3 Jan 2013



Join the 15-year community celebration.

Play games and win prizes!

Learn more
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!