Interpolation with three arrays

if true
% code
x = [0 .25 0 .5 .5 1 .5 .75];
y = [0 .25 .5 0 .5 .5 1 .75];
t = [20.99 25.74 29.7 22.34 40.48 45.75 63.01 62.98];
a = TriScatteredInterp(x(:),y(:),t(:),'nearest');
pnt1 = a(0,1)
end
I have these three arrays of data and I am trying to interpolate for the value of t for different values of x and y. for example t when x = 0 and y = 1. For some reason my code above is not working. Any help or ideas would be appreciated.

Antworten (1)

Shashank Prasanna
Shashank Prasanna am 6 Mai 2013

0 Stimmen

Why do you think this is not working? It seems to be working fine:
>> pnt1 = a(0,0)
pnt1 =
20.9900
>> pnt1 = a(0,1)
pnt1 =
63.0100

2 Kommentare

tunny
tunny am 6 Mai 2013
in the triscatteredinterp delete the 'nearest' because that just picks up the value in the array that is closest.
Shashank Prasanna
Shashank Prasanna am 7 Mai 2013
It appears that you are interested in extrapolation rather than interpolation.
TriScatteredInterp does not support extrapolation. However, the recent release of MATLAB R2013a, introduced scatteredInterpolant which does.
You may have to upgrade to use this if you are on an older release.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Interpolation finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 6 Mai 2013

Community Treasure Hunt

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

Start Hunting!

Translated by