MathGroup Archive 2003

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

Search the Archive

Re: Distance between residues

  • To: mathgroup at smc.vnet.net
  • Subject: [mg41321] Re: [mg41288] Distance between residues
  • From: Bobby Treat <drmajorbob at mailblocks.com>
  • Date: Wed, 14 May 2003 08:18:00 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

If you mean to calculate distances between rows of a matrix, this 
works.  (The first two lines are only for making examples.)

f = Which[3# < 1, a, 3# < 2, b, True, c] &;
m = Table[f@Random[], {3}, {2}]

distance[(x_)?VectorQ, (y_)?VectorQ] := (Sqrt[#1.#1] &)[x - y]
Outer[distance, m, m, 1]

If you mean that the matrix elements are themselves vectors, almost the 
same thing works.  (The first line builds an example matrix.)

m = Table[f@Random[], {3}, {4}, {2}];
Outer[distance, m, m, 2]
Dimensions@%

This result has a structure you may or not find useful, but it's a 
consequence of the structure of m.  Flatten[%,k] may help for k = 1, 2, 
or 3 -- depending on what you want this to look like.

Bobby

-----Original Message-----
From: rchoy at ula.ve
To: mathgroup at smc.vnet.net
Subject: [mg41321] [mg41288] Distance between residues

Hi,

I'm trying to calculate the euclidean distances between elements of a
matrix, for example:

d=Sqrt[(x[i]-x[j])^2+(y[i]-y[j])^2], (and i is the element [[1,1]] and j
is the element
[[1,2]], as an example). Also the code in Mathematica (that i have) 
would be:

d=Sqrt[(m[[i,1]]+m[[k,1]])^2+(m[[i,2]]+m[[k,2]])^2].

I have tried with Do, For, Table and While, but I haven't been able to 
do
this (in a iterative
way), any ideas?

Thanks a lot,

Rebeca


  • Prev by Date: Re: Count pattern
  • Next by Date: Re: Apart, Factor on different operations
  • Previous by thread: Distance between residues
  • Next by thread: Count pattern