[R] easy way to do a 2-D fit to an array of data?

Carl Witthoft carl at witthoft.com
Tue May 3 01:14:00 CEST 2011


Hi,
I've got a matrix, Z, of values representing (as it happens) optical 
power at each pixel location.  Since I know in advance I've got a 
single,  convex peak, I would like to do a 2D parabolic fit of the form 
Z = poly((x+y),2) where x and y are the x,y coordinates of each pixel 
(or equivalently, the row, column numbers).
Is there an R function that lets me easily implement that? I've started 
down the path of something like

zvec <- as.vector(Z), and creating  applicable x,y vectors by something 
like  (where for the sake of argument Z is 128x128)

foo<-matrix(seq(1,128),128,128)

xvec <- as.vector(foo)
yvec <- as.vector(t(foo))

at which point I can feed zvec, xvec, yvec to lm() .

I'm  hopeful someone can point me to a much easier way to do the same 
thing.  Oh, and if there's a 2-D  splinefunction generator, that would 
work for me as well.

thanks
Carl



More information about the R-help mailing list