// Copyright ©2015 The Gonum Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package mat_test import ( "fmt" "gonum.org/v1/gonum/mat" ) func ExampleSymDense_SubsetSym() { n := 5 s := mat.NewSymDense(5, nil) count := 1.0 for i := 0; i < n; i++ { for j := i; j < n; j++ { s.SetSym(i, j, count) count++ } } fmt.Println("Original matrix:") fmt.Printf("%0.4v\n\n", mat.Formatted(s)) // Take the subset {0, 2, 4} var sub mat.SymDense sub.SubsetSym(s, []int{0, 2, 4}) fmt.Println("Subset {0, 2, 4}") fmt.Printf("%0.4v\n\n", mat.Formatted(&sub)) // Take the subset {0, 0, 4} sub.SubsetSym(s, []int{0, 0, 4}) fmt.Println("Subset {0, 0, 4}") fmt.Printf("%0.4v\n\n", mat.Formatted(&sub)) // Output: // Original matrix: // ⎡ 1 2 3 4 5⎤ // ⎢ 2 6 7 8 9⎥ // ⎢ 3 7 10 11 12⎥ // ⎢ 4 8 11 13 14⎥ // ⎣ 5 9 12 14 15⎦ // // Subset {0, 2, 4} // ⎡ 1 3 5⎤ // ⎢ 3 10 12⎥ // ⎣ 5 12 15⎦ // // Subset {0, 0, 4} // ⎡ 1 1 5⎤ // ⎢ 1 1 5⎥ // ⎣ 5 5 15⎦ }