Функция веса расстояния Манхэттена
Z = mandist(W,P)
D = mandist(pos)
mandist - функция веса расстояния Манхэттена. Весовые функции применяют веса к входу, чтобы получить взвешенные входы.
Z = mandist(W,P) принимает эти входы,
W |
|
P |
|
и возвращает S-by- Q матрица вектора расстояний.
mandist является также функцией расстояния между слоями, которая может использоваться, чтобы найти расстояния между нейронами в слое.
D = mandist(pos) принимает один аргумент,
pos |
|
и возвращает S-by- S матрица расстояний.
Здесь вы задаете матрицу случайного веса W и входной вектор P и вычислите соответствующий взвешенный вход Z.
W = rand(4,3); P = rand(3,1); Z = mandist(W,P)
Здесь вы задаете случайную матрицу положений для 10 нейронов, расположенных в 3-мерном пространстве, и затем находите их расстояния.
pos = rand(3,10); D = mandist(pos)
Чтобы изменить сеть, чтобы вес входа использовал mandist, задать net.inputWeights{i,j}.weightFcn на 'mandist'. Для веса слоя задайте net.layerWeights{i,j}.weightFcn на 'mandist'.
Чтобы изменить сеть, чтобы топология слоя использовала mandist, задать net.layers{i}.distanceFcn на 'mandist'.
В любом случае звоните sim чтобы симулировать сеть с dist. Посмотрите newpnn или newgrnn для примеров симуляции.
Расстояние по Манхэттену D между двумя векторами X и Y является
D = sum(abs(x-y))