目录
在使用Breeze 库时,需要导入相关包:
import breeze.linalg._
import breeze.numerics._
Breeze创建函数
//全0矩阵
DenseMatrix.zeros[Double](3,2)
res0: breeze.linalg.DenseMatrix[Double] =
0.0 0.0
0.0 0.0
0.0 0.0
//全0向量
DenseVector.zeros[Double](2)
res1: breeze.linalg.DenseVector[Double] = DenseVector(0.0, 0.0)
//全1向量
DenseVector.ones[Double](2)
res2: breeze.linalg.DenseVector[Double] = DenseVector(1.0, 1.0)
//按数值填充向量
DenseVector.fill[Double](3, 2)
res3: breeze.linalg.DenseVector[Double] = DenseVector(2.0, 2.0, 2.0)
//生成随机向量
DenseVector.range(1, 9, 2)
DenseVector.rangeD(1, 9, 2)
DenseVector.rangeF(1, 9, 2)
res4: breeze.linalg.DenseVector[Int] = DenseVector(1, 3, 5, 7)
res5: breeze.linalg.DenseVector[Double] = DenseVector(1.0, 3.0, 5.0, 7.0)
res6: breeze.linalg.DenseVector[Float] = DenseVector(1.0, 3.0, 5.0, 7.0)
//单位矩阵
DenseMatrix.eye[Double](4)
res7: breeze.linalg.DenseMatrix[Double] =
1.0 0.0 0.0 0.0
0.0 1.0 0.0 0.0
0.0 0.0 1.0 0.0
0.0 0.0 0.0 1.0
//对角矩阵
diag(DenseVector(3.0, 4.0, 5.0))
res8: breeze.linalg.DenseMatrix[Double] =
3.0 0.0 0.0
0.0 4.0 0.0
0.0 0.0 5.0
//按照行创建矩阵
DenseMatrix((4.0, 5.0, 6.0), (7.0, 8.0, 9.0))
res9: breeze.linalg.DenseMatrix[Double] =
4.0 5.0 6.0
7.0 8.0 9.0
//按照行创建向量
DenseVector((4.0, 5.0, 6.0, 7.0, 8.0, 9.0))
res10: breeze.linalg.DenseVector[(Double, Double, Double, Double, Double, Double)] = DenseVector((4.0,5.0,6.0,7.0,8.0,9.0))
//向量转置
DenseVector((4.0, 5.0, 6.0, 7.0, 8.0, 9.0)).t
res11: breeze.linalg.Transpose[breeze.linalg.DenseVector[(Double, Double, Double, Double, Double, Double)]] = Transpose(DenseVector((4.0,5.0,6.0,7.0,8.0,9.0)))
//从函数创建向量
DenseVector.tabulate(5)(i => i*i)
DenseVector.tabulate(0 to 5)(i => i*i)
res12: breeze.linalg.DenseVector[Int] = DenseVector(0, 1, 4, 9, 16)
res13: breeze.linalg.DenseVector[Int] = DenseVector(0, 1, 4, 9, 16, 25)
//从函数创建矩阵
DenseMatrix.tabulate(3, 4){ case (i, j) => i*i+j*j }
res14: breeze.linalg.DenseMatrix[Int] =
0 1 4 9
1 2 5 10
4 5 8 13
//从数组创建向量
new DenseVector[Double](Array(2.0, 5.0, 8.0))
res15: breeze.linalg.DenseVector[Double] = DenseVector(2.0, 5.0, 8.0)
//从数组创建矩阵
new DenseMatrix[Double](3, 2, Array(1.0, 4.0, 7.0, 3.0, 6.0, 9.0))
res16: breeze.linalg.DenseMatrix[Double] =
1.0 3.0
4.0 6.0
7.0 9.0
//0 到 1的随机向量
DenseVector.rand(9, Rand.uniform)
DenseVector.rand(9, Rand.gaussian)
res17: breeze.linalg.DenseVector[Double] = DenseVector(0.30960687979350654, 0.577998