// define a function that interpolates a vector 'a' defined on a regular grid // at interpolated support coordinates 'x' f = @(a, x) interp1( 1:length(a), a, x); // test vector (given by OP) a=[10 20 30 40]; // this vector interpolated at coordinate 1.5 gives 15 // (can be a vector of coordinates) f(a, 1.5)
macht was du willst
Der Vektor a
enthält die zu interpolierenden Werte in regelmäßigen Abständen zwischen 1 und der Länge von a
. Um dies zu erreichen, kann man die Matlab-Funktion verwenden interp1
, die bei Stützpunkten (erstes Argument), Werten an diesen Stützpunkten (zweites Argument) und angeforderten Interpolationskoordinaten (drittes Argument) eine lineare Interpolation durchführt. Gemäß der Aufforderung des OP, die Interpolation mit einem kurzen spezifischen Funktionsaufruf durchzuführen, ermöglicht diese Funktion jedoch f
die Interpolation des Vektors a
an einer bestimmten Koordinate (oder einem Koordinatenvektor), solange sich diese innerhalb des Bereichs befinden [1,length(a)]
.