How to make smooth curve on figure?
Afficher commentaires plus anciens
I have a matlab figure which has noisy data. I want to plot a smooth curve for those data. Can anyone help on this issue?
Réponses (1)
Star Strider
le 6 Avr 2015
The Savitzky-Golay filter (Signal Processing Toolbox sgolayfilt function) is probably best for your application:
F = openfig('smooth.fig');
x = get(get(gca, 'Children'), 'XData');
y = get(get(gca, 'Children'), 'YData');
x = x(~isnan(y));
y = y(~isnan(y));
b = sgolayfilt(y, 3, fix(length(y)/2));
hold on
plot(x, b, '-r')
hold off
Experiment with the filter polynomial order and frame length to get the result you want.
Catégories
En savoir plus sur Smoothing and Denoising dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!