I have a 1x35 array, i want to generate a vector 1x31822 interpolating from the 35 points of the first vector, in a way that the two vectors could have the same shape.
which is the best method?
thanks

2 Kommentare

Jos (10584)
Jos (10584) am 30 Nov. 2017
what do you mean by "have the same shape"? Can you give a small example?
matteo avanzi
matteo avanzi am 30 Nov. 2017
yes, the first array represent a kind of parabola with 35 points, i want to create a vector using this 35 points as keypoints; for example between the 1st and 2nd there must be around 909 points(31822/35) that interpolate the 1st and 2nd points. and so on for every point.
hope that it's better
thanks

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

KSSV
KSSV am 30 Nov. 2017

0 Stimmen

Read about interp1.
th = linspace(0,2*pi,35) ;
y = sin(th) ;
figure
hold on
plot(th,y,'.r')
%%interpolation
thi = linspace(min(th),max(th),31822) ;
yi = interp1(th,y,thi) ;
plot(thi,yi,'b') ;

Weitere Antworten (1)

Jos (10584)
Jos (10584) am 30 Nov. 2017

0 Stimmen

interp1 is your friend. An example:
x = [0 4 7 10]
y = (x-5).^2
xx = linspace(0,10,13)
yy0 = interp1(x,y,xx) % default: linear interpolation
yy1 = interp1(x,y,xx,'pchip')
plot(xx,yy0,'r-',xx,yy1,'g-', x,y,'bo')

Kategorien

Mehr zu Interpolation 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