Re: ListInterpolate and missing values

*To*: mathgroup at smc.vnet.net*Subject*: [mg124882] Re: ListInterpolate and missing values*From*: Bob Hanlon <hanlonr357 at gmail.com>*Date*: Fri, 10 Feb 2012 05:57:28 -0500 (EST)*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com*References*: <201202091034.FAA18221@smc.vnet.net>

x = {1, 2, 10, , 12, 2, 6, 6, , , 12, 22}; data = Thread[{Range[Length[x]], x}] /. {_, Null} -> Sequence[]; f = Interpolation[data, InterpolationOrder -> 1]; x2 = f /@ Range[Length[x]] {1, 2, 10, 11, 12, 2, 6, 6, 8, 10, 12, 22} Plot[f[t], {t, 1, Length[x]}, AxesOrigin -> {0, 0}, Epilog -> {Red, PointSize[Large], Point[data]}] Bob Hanlon On Thu, Feb 9, 2012 at 5:34 AM, Mark Coleman <markspcoleman at gmail.com> wrote: > Hi, > > I'm looking for a way to linearly interpolate missing values in a > large list of numbers such that the interpolated values reflect the > size of the "gap" between non-missing values. For instance, say I have > the following list: > > x={1,2,10,,12,2,6,6,,,12,22} > > The list x has two gaps. A gap of size "1" at x[4], and a gap a size > "2" at x[10]-x[11]. I'm looking for a linear interpolation method such > that > > x[4] = 11, > > x[10]=8, x[11]=10 > > That is, each of the interpolated values is a constant increment > between the two surrouding non-missing values. My actually problem has > millions of such lists, where gaps are dispersed randomly (In thinking > about his more, missing endpoints could also be interpolated by > "extending" the line between the two succeeeding or preceeding > points). > > I'm wondering if ListInterpolate can handle this sort of problem > directly? If not, any help would be much appreciated. > > Cheers, > > Mark >

**Follow-Ups**:**Re: How to select only points which are inside a domain***From:*Ray Koopman <koopman@sfu.ca>

**How to select only points which are inside a domain***From:*Ted Sariyski <tsariysk@craft-tech.com>

**References**:**ListInterpolate and missing values***From:*Mark Coleman <markspcoleman@gmail.com>