Help: Smooth a curve generated from a group of specified points
Mostra commenti meno recenti
Hi,
I have 2 vector of x, y coodinates of points
x=[0 50 935 1870 1935 2805 3740 4675 5610 6545 6746 7480 7911 8415 8590 9004];
y=[300 600 716 892 900 990 1052 1071 1037 934 900 736 600 393 300 0];
length(x)=length(y)=16.
The first curve is generated by plot(x,y).
Because I want to smooth the orginal curve. From x, y vectors, I want to generate x', y' vectors with length(x')=length(y')=101. And the second curve is generated by plot(x',y').
Could someone please help me to do this?
I also created a script to do it, but the result wasn't same as the one I want.
My script:
clc
clear all
x=[0 50 935 1870 1935 2805 3740 4675 5610 6545 6746 7480 7911 8415 8590 9004];
y=[300 600 716 892 900 990 1052 1071 1037 934 900 736 600 393 300 0];
plot(x,y,'-o');
xnew=linspace(x(1),x(end),101);
ynew=spline(x,y,xnew);
figure
plot(xnew,ynew,'--o');
The curve generated by plot(x,y):

The curve generated by plot(x',y'):

The result I want to get:

Khanh.
Risposta accettata
Più risposte (1)
Salaheddin Hosseinzadeh
il 18 Set 2014
Hello Khanh, Please try to use resample rather than spline
doc resample
Simply resample your x and y value with same factor and then plot them.
Good Luck!
1 Commento
Khanh
il 19 Set 2014
Categorie
Scopri di più su Smoothing in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!