Accelerating the pace of engineering and science

# Documentation Center

• Trial Software

# dist

Euclidean distance weight function

## Syntax

Z = dist(W,P,FP)
dim = dist('size',S,R,FP)
dw = dist('dw',W,P,Z,FP)
D = dist(pos)
info = dist('code')

## Description

Weight functions apply weights to an input to get weighted inputs.

Z = dist(W,P,FP) takes these inputs,

 W S-by-R weight matrix P R-by-Q matrix of Q input (column) vectors FP Struct of function parameters (optional, ignored)

and returns the S-by-Q matrix of vector distances.

dim = dist('size',S,R,FP) takes the layer dimension S, input dimension R, and function parameters, and returns the weight size [S-by-R].

dw = dist('dw',W,P,Z,FP) returns the derivative of Z with respect to W.

dist is also a layer distance function which can be used to find the distances between neurons in a layer.

D = dist(pos) takes one argument,

 pos N-by-S matrix of neuron positions

and returns the S-by-S matrix of distances.

 'deriv' Name of derivative function 'fullderiv' Full derivative = 1, linear derivative = 0 'pfullderiv' Input: reduced derivative = 2, full derivative = 1, linear derivative = 0 'name' Full name 'fpnames' Returns names of function parameters 'fpdefaults' Returns default function parameters

## Examples

Here you define a random weight matrix W and input vector P and calculate the corresponding weighted input Z.

```W = rand(4,3);
P = rand(3,1);
Z = dist(W,P)
```

Here you define a random matrix of positions for 10 neurons arranged in three-dimensional space and find their distances.

```pos = rand(3,10);
D = dist(pos)
```

## Network Use

You can create a standard network that uses dist by calling newpnn or newgrnn.

To change a network so an input weight uses dist, set net.inputWeight{i,j}.weightFcn to 'dist'. For a layer weight, set net.layerWeight{i,j}.weightFcn to 'dist'.

To change a network so that a layer's topology uses dist, set net.layers{i}.distanceFcn to 'dist'.

In either case, call sim to simulate the network with dist.

See newpnn or newgrnn for simulation examples.

```d = sum((x-y).^2).^0.5