I have:
  • vector X: legnth(X)=90 --> X=[0:0.0125:1.1125]
  • vector Y: length(Y)=80 --> Y=[22.2: ...(not periodic)... :4]
  • matrix Z: size(Z)=90,80 --> measured values from each (X,Y) simulation
I am using contour(X,Y,Z), but am getting jagged, non-smooth contour lines, like this:
How do I smooth the contour lines? I've fiddled with trying to use interp2, but am falling down on the use of grid inputs I think.
Any help is much appreciated.

 Akzeptierte Antwort

John D'Errico
John D'Errico am 27 Feb. 2014

4 Stimmen

You DON'T want to smooth the contour lines. That just never works out. Better (but rarely perfect) is to smooth the surface before the contours are built. I say not perfect because any time you do smoothing, you lose information too. Hey, life is tough.
The simple way to smooth the surface is to just use conv2, with a Gaussian blur as a kernel. Choose the width of the gaussian to adjust the amount of smoothing.
You can also use my gridfit code from the file exchange, which allows a choice of the smoothing parameter, thus the amount of smoothing.

Weitere Antworten (0)

Kategorien

Mehr zu Contour Plots finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by