ak9im/p2/run.go

68 lines
1.4 KiB
Go
Raw Normal View History

package main
import (
"flag"
"log"
"git.dotya.ml/wanderer/ak9im/p2/stats"
)
var datafile = flag.String("datafile", "", "read data from this file")
func run() error {
flag.Parse()
if *datafile != "" {
2023-02-25 14:13:56 +01:00
data, err := readFile(datafile)
if err != nil {
return err
}
u := 0
y := 1
meanU := stats.Mean(data[u])
meanY := stats.Mean(data[y])
varianceU := stats.Variance(data[u])
varianceY := stats.Variance(data[y])
2023-02-25 13:23:47 +01:00
maxShift := 0.1
autocorrelationU := stats.Autocorrelate(data[u], maxShift)
autocorrelationY := stats.Autocorrelate(data[y], maxShift)
2023-02-25 13:23:47 +01:00
mutCorrelationUY, err := stats.MutCorrelate(data[u], data[y], maxShift)
if err != nil {
return err
}
2023-02-25 14:29:55 +01:00
mutCorrelationYU, err := stats.MutCorrelate(data[y], data[u], maxShift)
if err != nil {
return err
}
2023-02-25 13:23:47 +01:00
log.Printf("len(data): %d", len(data[u]))
log.Printf("means - u: %v, y: %v", meanU, meanY)
log.Printf("variance - u: %v, y: %v", varianceU, varianceY)
2023-02-25 13:23:47 +01:00
log.Printf("len(autocorrelationU): %d", len(autocorrelationU))
log.Printf("autocorrelationU: %v", autocorrelationU)
log.Printf("autocorrelationY: %v", autocorrelationY)
log.Printf("mutual correlation U,Y: %v", mutCorrelationUY)
2023-02-25 14:29:55 +01:00
log.Printf("mutual correlation Y,U: %v", mutCorrelationYU)
err = saveStuff(
meanU, meanY,
varianceU, varianceY,
autocorrelationU, autocorrelationY,
mutCorrelationUY, mutCorrelationYU,
)
if err != nil {
return err
}
}
return nil
}