| Algorithm-FuzzyCmeans documentation | Contained in the Algorithm-FuzzyCmeans distribution. |
Algorithm::FuzzyCmeans::Distance::Euclicd
Calculate the euclid distance between input vectors.
Mizuki Fujisawa <fujisawa@bayon.cc>
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| Algorithm-FuzzyCmeans documentation | Contained in the Algorithm-FuzzyCmeans distribution. |
package Algorithm::FuzzyCmeans::Distance::Euclid; use strict; use warnings; use base qw(Algorithm::FuzzyCmeans::Distance); sub distance { my ($self, $vec1, $vec2) = @_; my %keys; map { $keys{$_} = 1 } keys %{ $vec1 }; map { $keys{$_} = 1 } keys %{ $vec2 }; my $dist; foreach my $key (keys %keys) { my $val1 = $vec1->{$key} || 0; my $val2 = $vec2->{$key} || 0; $dist += ($val1 - $val2) ** 2; } return $dist; } 1; __END__