I'm trying to some interpolation in java to mimic what I could do in matlab. I realize that matlab is super feature rich but I was wondering if anyone knew of any good libraries that implement what I'm looking for.
Specifically, I'd like to implement matlab's "griddata" function:
Syntax
ZI = griddata(x,y,z,XI,YI)
[XI,YI,ZI] = griddata(x,y,z,XI,YI)
[...] = griddata(...,method)
Description
ZI = griddata(x,y,z,XI,YI) fits a surface of the form z = f(x,y) to the data in the (usually) nonuniformly spaced vectors (x,y,z). griddata interpolates this surface at the points specified by (XI,YI) to produce ZI. The surface always passes through the data points. XI and YI usually form a uniform grid (as produced by meshgrid).
XI can be a row vector, in which case it specifies a matrix with constant columns. Similarly, YI can be a column vector, and it specifies a matrix with constant rows.
x,y, and z are the actual data values.
If x is {1,2,3} and y is {4,5,6} then:
XI is { 1 2 3
1 2 3
1 2 3 }
and YI is { 4 4 4
5 5 5
6 6 6 }
Does anyone know of a good java library that can do that interpolation?