Nearest

Nearest[{elem1,elem2,},x]

gives the list of elemi to which x is nearest.

Nearest[{elem1v1,elem2v2,},x]

gives the vi corresponding to the elemi to which x is nearest.

Nearest[{elem1,elem2,}{v1,v2,},x]

gives the same result.

Nearest[{elem1,elem2,}prop,x]

gives the property prop for the elemi to which x is nearest.

Nearest[data,{x1,x2,}]

effectively gives {Nearest[data,x1],Nearest[data,x2],}.

Nearest[data,x,n]

gives the n nearest elemi to x.

Nearest[data,x,{n,r}]

gives the n or fewer nearest elemi to x that are within radius r of x.

Nearest[data]

generates a that can be applied repeatedly to different x.

Details and Options   • Nearest works for a variety of data, including numerical, geospatial, textual, and visual, as well as dates and times.
• The data can also be given as an association. In this case, Nearest[<|key1val1,key2val2,|>] is equivalent to Nearest[{val1key1,val2key2,}].
• In Nearest[{elem1,elem2,}prop,], possible forms for prop include:
•  "Element" the elemi found to be nearest "Index" the index i of the elemi found to be nearest "Distance" the distance to the nearest elemi {prop1,prop2,…} a list of multiple forms All an association giving element, index and distance
• When Nearest returns several elements elemi, the nearest ones are given first.
• If several elements are at the same distance, they are returned in the order they appear in data.
• Nearest[data,x,{All,r}] can be used to get all elemi within radius r.
• The following options can be given:
•  DistanceFunction Automatic the distance metric to use Method Automatic method to use WorkingPrecision Automatic precision to use for numeric data
• By default, the following distance functions are used for different types of elemi:
•  Norm[#1-#2]& numeric data JaccardDissimilarity Boolean data EditDistance strings ColorDistance colors ImageDistance images DateDifference dates and times GeoDistance geospatial data
• Nearest with geospatial data uses GeoDistance to compute distances. The data can be given as a list of GeoPosition objects, or a GeoPosition containing an array of points.
• For images or colors and a distance function f, is passed to ImageDistance and ColorDistance, respectively. »
• All images are conformed using ConformImages. With , dimensionality reduction based on discrete cosine transform is applied to the set of images.
• Using Norm[#1-#2,p]& for or named distance functions such as ManhattanDistance, ChessboardDistance, and EuclideanDistance can invoke special optimizations for numeric vector data.
• Possible settings for Method include "Octree", "KDtree", and "Scan".
• Possible settings for the WorkingPrecision option are:
•  MachinePrecision use machine-precision numbers p use precision p Automatic use adaptive precision to resolve nearest points

Examples

open allclose all

Basic Examples(5)

Find the element nearest to 20:

Find the 3 elements nearest to 20:

Find which element is nearest to {2,3} in 2D:

Find "nearest" strings:

Find nearest colors:

Find the nearest image partition to a subimage:

Scope(9)

Give the 3 nearest elements:

Give the elements within radius 2:

Give at most 3 nearest elements within radius 2:

Find the nearest matrix:

Find which element is nearest to {2,3} in 2D and return the appropriate label:

Compute the same using an Association:

Return the index for the nearest string:

Return an Association giving the string element, index, and distance:

Find the 3 elements nearest to 20, simultaneously reporting the elements and their distance to 20:

For uniform random points in 3D, give the distances for the 10 nearest to the origin:

For each of the 10 nearest, give an Association including the point element, index and distance:

Create a lookup function for future use:

Find the date nearest to a given DateObject:

Find out which of these {lat,lon} points on Earth is closest to you:

Express the input as a list of separate GeoPosition objects instead:

Report simultaneously the closest point and the distance to it:

Options(6)

DistanceFunction(3)

By default, normal Euclidean distance is used for points:

Use the ManhattanDistance, which sums the length of each side:

The ChessboardDistance only takes into account the dimension with the largest separation:

The DistanceFunction can be given as a symbol:

Or as a pure function:

Find nearest colors using a color distance different from the default distance in ColorDistance:

Method(2)

Compare different methods for machine-precision data:

In three dimensions, the "KDtree" method is faster:

In 20 dimensions, a simple scan is faster:

The setting Method->{"KDtree","LeafSize"->s} may be used to control the maximum number of points in any leaf of the KD tree constructed:

Plot the tree setup time:

Plot the lookup time for different points:

WorkingPrecision(1)

Using ensures the fastest evaluation method is used:

The results may not be correct if the numbers are not all distinct to machine precision:

All the points are effectively the same to machine precision:

An appropriate higher value of precision will work:

Applications(8)

Plot the Nearest of a list of:

Create a Voronoi diagram:

Use higher resolution:

Use a 1-norm ("taxicab distance"):

Highlight the 200 random points closest to the origin:

Use the "taxicab" metric:

Create a nearest function from all the words in a dictionary:

Look up words closest to a given word:

Go farther:

Find the outputs from running a sequence of elementary cellular automata:

Generate a complete list of outputs from all 256 elementary cellular automata:

Find which rules give outputs nearest the specified sequences:

Use a negative distance function to find the element farthest away from the given element:

Show the returned element for all values between 1 and 5:

Take the polygon of Mexico:

Compute the nearest of the points of that polygon from your current geo location:

Draw the geodesic from your location to that point:

Properties & Relations(2)

In the case of a tie, all nearest elements are returned in order:

The single argument form of Nearest returns a NearestFunction object:

This is an optimized lookup function, which is faster than calling Nearest repeatedly:

Neat Examples(1)

Find successive nearest words in a dictionary: