Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

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.

info = dist('code') returns information about this function. The following codes are supported:

'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.inputWeights{i,j}.weightFcn to 'dist'. For a layer weight, set net.layerWeights{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.

More About

collapse all

Algorithms

The Euclidean distance d between two vectors X and Y is

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

Introduced before R2006a

Was this topic helpful?