Learn R Programming

RiemBase (version 0.1.0)

pdist: Pairwise Geodesic Distances of a Data Set

Description

Geodesic distance \(\rho(x,y)\) is the length of (locally) shortest path connecting two points \(x,y\in\mathcal{M}\). Some manifolds have closed-form expression, while others need numerical approximation.

Usage

pdist(input, parallel = FALSE)

Arguments

input

a S3 object of riemdata class, whose $data element is of length \(n\). See riemfactory for more details.

parallel

a flag for enabling parallel computation.

Value

an \((n\times n)\) matrix of pairwise distances.

Examples

Run this code
# NOT RUN {
### Generate 10 2-frames in R^4
ndata = 10
data = array(0,c(4,2,ndata))
for (i in 1:ndata){
  tgt = matrix(rnorm(4*4),nrow=4)
  data[,,i] = qr.Q(qr(tgt))[,1:2]
}

## Compute Pairwise Distances as if for Grassmann and Stiefel Manifold
A = pdist(riemfactory(data,name="grassmann"))
B = pdist(riemfactory(data,name="stiefel"))

## Visual Comparison in Two Cases
par(mfrow=c(1,2), pty="s")
image(pracma::flipud(A), col=gray((0:100)/100), main="Grassmann")
image(pracma::flipud(B), col=gray((0:100)/100), main="Stiefel")
# }
# NOT RUN {
# }

Run the code above in your browser using DataLab