| // Copyright ©2017 The Gonum Authors. All rights reserved. |
| // Use of this code is governed by a BSD-style |
| // license that can be found in the LICENSE file |
| |
| package cscalar_test |
| |
| import ( |
| "bufio" |
| "fmt" |
| "log" |
| "strings" |
| |
| "gonum.org/v1/gonum/cmplxs" |
| "gonum.org/v1/gonum/cmplxs/cscalar" |
| "gonum.org/v1/gonum/floats" |
| ) |
| |
| func ExampleParseWithNA() { |
| // Calculate the mean of a list of numbers |
| // ignoring missing values. |
| const data = `6+2i |
| missing |
| 4-4i |
| ` |
| |
| var ( |
| vals []complex128 |
| weights []float64 |
| ) |
| sc := bufio.NewScanner(strings.NewReader(data)) |
| for sc.Scan() { |
| v, w, err := cscalar.ParseWithNA(sc.Text(), "missing") |
| if err != nil { |
| log.Fatal(err) |
| } |
| vals = append(vals, v) |
| weights = append(weights, w) |
| } |
| err := sc.Err() |
| if err != nil { |
| log.Fatal(err) |
| } |
| fmt.Println(cmplxs.Sum(vals) / complex(floats.Sum(weights), 0)) |
| |
| // Output: |
| // (5-1i) |
| } |