www.pudn.com > 基于VC的神经网络开发程序包(源码).rar > KohonenMap3D.cpp
#include "../include/KohonenMap3D.h" #includenamespace annie { KohonenMap3D::KohonenMap3D(int X, int Y, int Z, int dimension) : KohonenMap(dimension,X*Y*Z) { _X = X; _Y = Y; _Z = Z; } real KohonenMap3D::getR(int n1, int n2) { int N1[3]; int N2[3]; getXYZ(n1,N1[0],N1[1],N1[2]); getXYZ(n2,N2[0],N2[1],N2[2]); real r = 0.0; for (int i=0; i<3; i++) { real temp = N1[i] - N2[i]; r += temp*temp; } r = sqrt(r); return r; } void KohonenMap3D::getXYZ(int i, int &x, int &y, int &z) { // i = (x*_X+y)*_Y + z x = i / (_Y * _Z); y = (i - x * (_Y * _Z)) / _Z; z = i % _Z; } int KohonenMap3D::getNeuronIndex(int x, int y, int z) { return x*(_Y*_Z)+y*_Z+z; } int KohonenMap3D::getWinner() { return KohonenMap::getWinner(); } void KohonenMap3D::getWinner(int &x, int &y, int &z) { int w = KohonenMap::getWinner(); getXYZ(w,x,y,z); } }; //namespace annie