Learn R Programming

fdasrvf (version 2.3.6)

get_shape_distance: Computes the distance between two shapes

Description

Computes the distance between two shapes

Usage

get_shape_distance(
  q1fun,
  q2fun,
  alignment = FALSE,
  rotation = FALSE,
  scale = FALSE,
  lambda = 0,
  M = 200L
)

Value

A list with the following components:

  • amplitude_distance: A numeric value storing the amplitude distance between the two SRVFs.

  • phase_distance: A numeric value storing the phase distance between the two SRVFs.

  • optimal_warping: A function that takes a numeric vector \(s\) of values in \([0, 1]\) as input and returns the optimal warping function evaluated at \(s\).

  • q1fun_modified: A function that takes a numeric vector \(s\) of values in \([0, 1]\) as input and returns the first SRVF modified according to the optimal alignment, rotation, and scaling.

  • q2fun_modified: A function that takes a numeric vector \(s\) of values in \([0, 1]\) as input and returns the second SRVF modified according to the optimal alignment, rotation, and scaling.

Arguments

q1fun

A function that takes a numeric vector \(s\) of values in \([0, 1]\) as input and returns the values of the first SRVF at \(s\).

q2fun

A function that takes a numeric vector \(s\) of values in \([0, 1]\) as input and returns the values of the second SRVF at \(s\).

alignment

A boolean value specifying whether the two SRVFs should be optimally aligned before computing the distance. Defaults to FALSE.

rotation

A boolean value specifying whether the two SRVFs should be optimally rotated before computing the distance. Defaults to FALSE.

scale

A boolean value specifying whether the two SRVFs should be projected onto the Hilbert sphere before computing the distance. Defaults to FALSE.

lambda

A numeric value specifying the regularization parameter for the optimal alignment. Defaults to 0.

M

An integer value specifying the number of points to use when searching for the optimal rotation and alignment. Defaults to 200L.

Examples

Run this code
q1 <- curve2srvf(beta[, , 1, 1])
q2 <- curve2srvf(beta[, , 1, 2])
get_shape_distance(q1, q2)

Run the code above in your browser using DataLab