Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2005
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Distance from point to set

  • To: mathgroup at smc.vnet.net
  • Subject: [mg55314] Re: Distance from point to set
  • From: Peter Pein <petsie at arcor.de>
  • Date: Sat, 19 Mar 2005 04:45:15 -0500 (EST)
  • References: <d1eblq$ek7$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Piotr Kowalski wrote:
> Hello,
> 
> I would like to compute distance d(x,A) from a point 'x' to a set 'A',
> (all in R^n, where n=2 or n=3) that is:
> 
>    d(x,A) = min ||x - a|| (forall a in A)
>    where: n=2 or n=3,
>           x is point in R^n, A is subset of R^n
>           ||  || is norm (euclidean, max, etc).
> 
> Can I find Mathematica function or package for such problem ?
> 
> Thank you in advance,
> P. Kowalski
> 
Hello Piotr,

Mathematica has got a builtin Norm[]:

In[1]:= (* genrating testing data *)
  x = {1, 2, 3}; A = Table[Random[Integer, {-5, 10}], {5}, {3}]
Out[1]=
  {{-5, -3, 8}, {4, -1, 2}, {-5, -4, 6}, {-5, 10, 10}, {-3, 10, 5}}
In[2]:= (* definition of the distance *)
  d[el_, set_, p_:Infinity] := Min[(Norm[el - #1, p] & ) /@ set]
(* you can use 2 in place of Infinity to get euclidian norm as default *)
In[3]:= d[x, A]
Out[3]= 3
In[4]:= (* the same function works for R^2*)
 d[{1, 1}, {{-1, 1}, {2, 2}, {2, 1}}, 2]
Out[4]= 1

-- 
Peter Pein
Berlin


  • Prev by Date: String to numbers
  • Next by Date: Re: Normal Disappear Problem
  • Previous by thread: Re: Distance from point to set
  • Next by thread: Re: Distance from point to set