golang matrix

 1 package main
 2 
 3 import (
 4     "fmt"
 5     "go.matrix-go1"   //比较有名的关于Matrix在golang中的方法库
 6     "strings"
 7 )
 8 
 9 func main() {
10 
11     //matrix
12     s := `[1 2 3;4 5 6]`
13     //用数组字符串生成matrix
14     a, err := matrix.ParseMatlab(s)
15 
16     if err != nil {
17         fmt.Println("?", err)
18     }
19 
20     //修改值
21     a.Set(0, 0, 50)
22     //给定行列位置点的值
23     fmt.Println(a.Get(0, 0))
24     //50
25 
26     //列值
27     fmt.Println(a.GetColVector(0))
28     //{50,
29     //  4}
30 
31     //列值
32     fmt.Println(a.GetRowVector(0))
33     //{50,  2,  3}
34 
35     //全值
36     fmt.Println(a)
37     //{50,  2,  3,
38     //  4,  5,  6}
39 
40     //数组形式
41     fmt.Println(a.Array())
42     //[50 2 3 4 5 6]
43 
44     //用行数和列数算错矩阵大小
45     fmt.Println(a.Rows() * a.Cols())
46     //6
47 
48     //带格式打印
49     fmt.Println(a.String())
50     //{50,  2,  3,
51     //  4,  5,  6}
52 
53     //用0填充生成一个i*j的矩阵
54     fmt.Println(matrix.Zeros(4, 4).String())
55     //{0, 0, 0, 0,
56     // 0, 0, 0, 0,
57     // 0, 0, 0, 0,
58     // 0, 0, 0, 0}
59 
60     //用1填充生成一个i*j的矩阵
61     fmt.Println(matrix.Ones(4, 4).String())
62     //{1, 1, 1, 1,
63     // 1, 1, 1, 1,
64     // 1, 1, 1, 1,
65     // 1, 1, 1, 1}
66 
67     //用指定数字填充生成一个i*j的矩阵
68     fmt.Println(matrix.Numbers(4, 4, 8).String())
69     //{8, 8, 8, 8,
70     // 8, 8, 8, 8,
71     // 8, 8, 8, 8,
72     // 8, 8, 8, 8}
73 
74     //生成对称矩阵
75     fmt.Println(matrix.Eye(3).String())
76     //{1, 0, 0,
77     // 0, 1, 0,
78     // 0, 0, 1}
79 
80     //生成带数字矩阵
81     fmt.Println(matrix.Normals(5, 5).String())
82     //{-1.233758, -0.126348, -0.520995,  2.285719,  0.322805,
83     //  0.590067,  0.158808,  0.989202, -0.731283,  0.686381,
84     //  1.585404,  0.838206,  1.298841,  0.527358,  0.732442,
85     //  -1.07318,  0.700121,  0.431531,  0.999626, -1.523968,
86     // -0.316537,  1.889464,  1.100729, -0.992743,   0.98971}
87 
88     //生成对角线上指定元素的对称矩阵
89     d := []float64{7, 7, 8, 9, 6, 10}
90     fmt.Println(matrix.Diagonal(d).String())
91     //{ 7,  0,  0,  0,  0,  0,
92     //  0,  7,  0,  0,  0,  0,
93     //  0,  0,  8,  0,  0,  0,
94     //  0,  0,  0,  9,  0,  0,
95     //  0,  0,  0,  0,  6,  0,
96     //  0,  0,  0,  0,  0, 10}
97 
98 }

 

posted on 2015-04-24 15:55  rojas  阅读(780)  评论(0编辑  收藏  举报