forked from Open-CT/openbrain
58 lines
1.4 KiB
Go
58 lines
1.4 KiB
Go
package object
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
"github.com/openbrainorg/openbrain/util"
|
|
)
|
|
|
|
func (vectorset *Vectorset) LoadVectors(pathPrefix string) {
|
|
path := util.GetUploadFilePath(fmt.Sprintf("%s%s", pathPrefix, vectorset.FileName))
|
|
|
|
var nameArray []string
|
|
var dataArray [][]float64
|
|
if strings.HasSuffix(vectorset.FileName, ".csv") {
|
|
if strings.Contains(vectorset.FileName, "_Dim_") {
|
|
nameArray, dataArray = util.LoadVectorFileByCsv2(path)
|
|
} else {
|
|
nameArray, dataArray = util.LoadVectorFileByCsv(path)
|
|
}
|
|
} else {
|
|
nameArray, dataArray = util.LoadVectorFileBySpace(path)
|
|
}
|
|
|
|
exampleVectors := []*Vector{}
|
|
vectors := []*Vector{}
|
|
vectorMap := map[string]*Vector{}
|
|
for i := 0; i < len(nameArray); i++ {
|
|
vector := &Vector{
|
|
Name: nameArray[i],
|
|
Data: dataArray[i],
|
|
}
|
|
|
|
if i < 100 {
|
|
exampleVectors = append(exampleVectors, vector)
|
|
}
|
|
vectors = append(vectors, vector)
|
|
vectorMap[vector.Name] = vector
|
|
}
|
|
|
|
vectorset.Vectors = exampleVectors
|
|
vectorset.AllVectors = vectors
|
|
vectorset.VectorMap = vectorMap
|
|
}
|
|
|
|
func (vectorset *Vectorset) WriteVectors(pathPrefix string) {
|
|
path := util.GetUploadFilePath(fmt.Sprintf("%s%s", pathPrefix, vectorset.FileName))
|
|
|
|
rows := [][]string{}
|
|
for _, vector := range vectorset.AllVectors {
|
|
row := util.FloatsToStrings(vector.Data)
|
|
row = append([]string{vector.Name}, row...)
|
|
rows = append(rows, row)
|
|
}
|
|
|
|
util.WriteCsvFile(path, &rows)
|
|
}
|