Extrapolating data outside given data

40 Ansichten (letzte 30 Tage)
Taha Rizvi
Taha Rizvi am 10 Nov. 2019
Kommentiert: Taha Rizvi am 10 Nov. 2019
Hi,
I need to extrapolate 15 points of data with 3 given corresponding x and y values. is there any way to do it?
%x = 1:15, y = 9.85 9.82 9.84 (extrapolate to 15)
any help would be greatly appreciated !!
  2 Kommentare
Walter Roberson
Walter Roberson am 10 Nov. 2019
Could you confirm that you have an x vector of length 3, and a y vector of length 3?
Is the task to extrapolate y where x would be 15? Or is the task to interpolate at 15 different locations, such as linspace(min(x), max(x), 15) ?
Taha Rizvi
Taha Rizvi am 10 Nov. 2019
Hi Walter,
sorry for that, the current x vector is x = [1 2 3] to correspond with that y vector.
and yes i need to extrapolate data all the way up to 15, so in total i would have 15 y values for 15 x values. like you said linspace(min(x), max(x), 15)

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Walter Roberson
Walter Roberson am 10 Nov. 2019
xq = linspace(min(x), max(x), 15);
yq = interp1(x, y, xq);
This does not extrapolate to x = 15, this interpolates at 1, 8/7, 9/7, 10/7, 11/7 and so on.
If you were trying to extrapolate out to x = 15, then
xq = 1 : 15;
yq = interp1(x, y, xq, 'linear', 'extrap')
or 'spline', 'extrap'
Or you could,
xq = 1 : 15;
[P, S, MU] = polyfit(x, y, 2);
yq = polyval(P, xq, S, MU);
  1 Kommentar
Taha Rizvi
Taha Rizvi am 10 Nov. 2019
Im a beginner in Matlab, could you explain how that code is able to extrapolate from those values please?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Interpolation finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by