On Nov 20, 2009, at 5:05 PM, Andrew Barr wrote:

Hi R folks,

I have a massive array (object name "points") in the following form

    [,1]     [,2]
[1,] 1369   22
[2,] 1370   22
[3,] 1368   23
[4,] 1369   23
[5,] 1370   23
[6,] 1371   23
(10080 rows truncated)

mtx <- matrix(scan(textConnection("1369   22
 1370   22
 1368   23
 1369   23
 1370   23
 1371   23")), ncol=2, byrow=TRUE)

> dist(mtx)
         1        2        3        4        5
2 1.000000
3 1.414214 2.236068
4 1.000000 1.414214 1.000000
5 1.414214 1.000000 2.000000 1.000000
6 2.236068 1.414214 3.000000 2.000000 1.000000


These represent pixel coordinates of interest in a jpeg image.  I need
to find the distance from each point to all other points of interest.
The only way I can see to do this is by pythagoras and nested for
loops.

distance<-function(x1,y1,x2,y2){sqrt((x2-x1)^2 + (y2-y1)^2)} #pythagoras
for(i in 1:nrow(points)){
        for(j in 1:nrow(points)){
dist<-c(dist,distance(points[i,1],point.array.indices[i,2],points[j, 1],points[j,2]))
}
}

This is obviously prohibitively slow with >10000 rows in the array.

I'm not sure that your request to make this fast is reasonable. The size of the resulting matrix will be more than most Windows machines will support.


Any thoughts on how to do this without for loops?

I can do that operation in 8 characters ... but ...

I apologize in
advance if there is an obvious way around this.

I think you should be thinking about apologizing for expecting a relaxation of the laws of combinatorics and geometry.



Thanks!

Andrew Barr
University of Texas at Austin

______________________________________________
R-help@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.

David Winsemius, MD
Heritage Laboratories
West Hartford, CT

______________________________________________
R-help@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.

Reply via email to