|
|
package main
import ( "fmt" "math" )
func euclideanDistance(dataset [][][]int, inputs [][]int) [][][]float64 { var distances [][][]float64
for _, inputLine := range inputs { for _, datasetLine := range dataset { datasetLineFloat := arrayIntToFloat64(datasetLine[0]) inputLineFloat := arrayIntToFloat64(inputLine) r := calcDistances(inputLineFloat, datasetLineFloat) //fmt.Println(r)
rArr := []float64{r} var newDatasetLine [][]float64 newDatasetLine = append(newDatasetLine, datasetLineFloat) newDatasetLine = append(newDatasetLine, rArr) distances = append(distances, newDatasetLine) //passar tot els int de values a float64
} } //fmt.Println(train)
return distances }
func calcDistances(in []float64, ds []float64) float64 { var r float64 r = 0 for i := 0; i < len(in); i++ { r = r + (in[i] * ds[i]) } r = math.Sqrt(r) return r }
func getShortestDistance(dist [][][]float64) { min := dist[0][0] max := dist[0][0] for i := 0; i < len(dist); i++ { if dist[i][1][0] > max[0] { max = dist[i][0] } if dist[i][0][0] < min[0] { min = dist[i][0] } //fmt.Println(dist[i][1])
} fmt.Println(min) fmt.Println(max) }
|