gonum.org/v1/gonum@v0.14.0/cmplxs/cscalar/parse_example_test.go (about)

     1  // Copyright ©2017 The Gonum Authors. All rights reserved.
     2  // Use of this code is governed by a BSD-style
     3  // license that can be found in the LICENSE file
     4  
     5  package cscalar_test
     6  
     7  import (
     8  	"bufio"
     9  	"fmt"
    10  	"log"
    11  	"strings"
    12  
    13  	"gonum.org/v1/gonum/cmplxs"
    14  	"gonum.org/v1/gonum/cmplxs/cscalar"
    15  	"gonum.org/v1/gonum/floats"
    16  )
    17  
    18  func ExampleParseWithNA() {
    19  	// Calculate the mean of a list of numbers
    20  	// ignoring missing values.
    21  	const data = `6+2i
    22  missing
    23  4-4i
    24  `
    25  
    26  	var (
    27  		vals    []complex128
    28  		weights []float64
    29  	)
    30  	sc := bufio.NewScanner(strings.NewReader(data))
    31  	for sc.Scan() {
    32  		v, w, err := cscalar.ParseWithNA(sc.Text(), "missing")
    33  		if err != nil {
    34  			log.Fatal(err)
    35  		}
    36  		vals = append(vals, v)
    37  		weights = append(weights, w)
    38  	}
    39  	err := sc.Err()
    40  	if err != nil {
    41  		log.Fatal(err)
    42  	}
    43  	fmt.Println(cmplxs.Sum(vals) / complex(floats.Sum(weights), 0))
    44  
    45  	// Output:
    46  	// (5-1i)
    47  }