[R] easy way to do a 2-D fit to an array of data?
Ravi Varadhan
rvaradhan at jhmi.edu
Tue May 3 04:08:01 CEST 2011
You may want to consider spatial::surf.ls
Or, a simplistic approach where you fit a model such as using `lm':
E[Z | x, y] = a + b(x - x0)^2 + c(y - y0)^2
where (x0, y0) is the location of maximum.
Ravi.
________________________________________
From: r-help-bounces at r-project.org [r-help-bounces at r-project.org] On Behalf Of Carl Witthoft [carl at witthoft.com]
Sent: Monday, May 02, 2011 7:14 PM
To: r-help at r-project.org
Subject: [R] easy way to do a 2-D fit to an array of data?
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
______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list