# warp

##### Apply a warping to a given timeseries

Returns the indexing required to apply the optimal warping curve to a given timeseries (warps either into a query or into a reference).

- Keywords
- ts

##### Usage

`warp(d,index.reference=FALSE)`

##### Arguments

- d
`dtw`

object specifying the warping curve to apply- index.reference
`TRUE`

to warp a reference,`FALSE`

to warp a query

##### Details

The warping is returned as a set of indices, which can be used to
subscript the timeseries to be warped (or rows in a matrix, if one
wants to warp a multivariate time series). In other words,
`warp`

converts the warping curve, or its inverse, into a
function in the explicit form.

Multiple indices that would be mapped to a single point are averaged, with a warning. Gaps in the index sequence are filled by linear interpolation.

##### Value

A list of indices to subscript the timeseries.

##### See Also

Examples in `dtw`

show how to *graphically*
apply the warping via parametric plots.

##### Examples

`library(dtw)`

```
# NOT RUN {
idx<-seq(0,6.28,len=100);
query<-sin(idx)+runif(100)/10;
reference<-cos(idx)
alignment<-dtw(query,reference);
wq<-warp(alignment,index.reference=FALSE);
wt<-warp(alignment,index.reference=TRUE);
old.par <- par(no.readonly = TRUE);
par(mfrow=c(2,1));
plot(reference,main="Warping query");
lines(query[wq],col="blue");
plot(query,type="l",col="blue",
main="Warping reference");
points(reference[wt]);
par(old.par);
##############
##
## Asymmetric step makes it "natural" to warp
## the reference, because every query index has
## exactly one image (q->t is a function)
##
alignment<-dtw(query,reference,step=asymmetric)
wt<-warp(alignment,index.reference=TRUE);
plot(query,type="l",col="blue",
main="Warping reference, asymmetric step");
points(reference[wt]);
# }
```

*Documentation reproduced from package dtw, version 1.18-1, License: GPL (>= 2)*