导入的包是 import breeze.linalg.{DenseMatrix, DenseVector}
1、全0矩阵
val zerosMatrix = DenseMatrix.zeros[Double](2,3)
0.0 0.0 0.0
0.0 0.0 0.0
2、全0向量
val zerosVector = DenseVector.zeros[Double](3).toDenseMatrix
0.0 0.0 0.0
3、全1矩阵
val onesMatrix = DenseMatrix.ones[Double](2,2)
1.0 1.0
1.0 1.0
4、全1向量
//全1向量
val onesVector = DenseVector.ones[Double](2)
DenseVector(1.0, 1.0)
5、生成自然序列
//satrt=开始数值。end结束数值。step=步长
val rangeVector = DenseVector.range(0,10)
DenseVector(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
6、按照数值填充向量
//按照数值填充向量
val fillVector = DenseVector.fill(5){3.0}
DenseVector(3.0, 3.0, 3.0, 3.0, 3.0)
7、线性等分向量
//线性等分向量,没有这个方法。可能我是2.11的
//val linespaceVector = DenseVector.linspace(0,1,100)
8、单位矩阵
//单位矩阵
val eyeMatrix = DenseMatrix.eye[Double](3)
println(eyeMatrix)
1.0 0.0 0.0
0.0 1.0 0.0
0.0 0.0 1.0
9、对角矩阵
//对角矩阵
val diagMatrix = diag(DenseVector(1.0,2.0,3.0))
println(diagMatrix)
1.0 0.0 0.0
0.0 2.0 0.0
0.0 0.0 3.0
10、按照行创建矩阵
//按照行创建矩阵
val lineMatrix = DenseMatrix((1.0,2.0),(3.0,4.0))
println(lineMatrix)
1.0 2.0
3.0 4.0
11、按照行创建向量
//按照行创建矩阵
val lineVector = DenseVector((1.0,2.0))
println(lineVector)
DenseVector((1.0,2.0))
12、向量的转置
//向量转置
println(rangeVector.t)
//矩阵转置
println(lineMatrix.t)
Transpose(DenseVector(0, 1, 2, 3, 4, 5, 6, 7, 8, 9))
1.0 3.0
2.0 4.0
13、从函数创建向量
//从函数创建向量
val tabVector = DenseVector.tabulate[Double](3){i=>i*2}
println(tabVector)
DenseVector(0.0, 2.0, 4.0)
14、从函数创建矩阵
//从函数创建矩阵
val tabMatrix = DenseMatrix.tabulate[Double](3,5){case (i,j)=>i+j}
println(tabMatrix)
0.0 1.0 2.0 3.0 4.0
1.0 2.0 3.0 4.0 5.0
2.0 3.0 4.0 5.0 6.0
15、从数组创建向量
//从数组创建向量
val arrVector = new DenseVector[Int](Array(0,1,2,3,4))
println(arrVector)
DenseVector(0, 1, 2, 3, 4)
16、从数组创建矩阵
//从数组创建矩阵
val arrMatrix = new DenseMatrix[Double](2,3,Array(0.0,1,2,3,4,5))
println(arrMatrix)
0.0 2.0 4.0
1.0 3.0 5.0
17、0到1的随机向量
//0-1的随机向量
val randVector = DenseVector.rand[Double](4)
println(randVector)
DenseVector(0.6399111087486293, 0.34824119577191204, 0.04476477489211206, 0.03202374194560176)
18、0到1的随机矩阵
//0-1的随机矩阵
val randMatrix = DenseMatrix.rand[Double](3,5)
println(randMatrix)
0.580150952036453 0.5519657482009042 0.8286419855007678 … (5 total)
0.8351852708961485 0.20434594686142127 0.6061584071396189 …
0.1121401023193529 0.8473588229601963 0.14499686193253702 …
19、Code
package com.sparktest.demo
import breeze.linalg.{DenseMatrix, DenseVector, diag}
/**
* Created by HeartisTiger on 2019/7/7
*/
object Demo01 {
def main(args: Array[String]) = {
//全0矩阵
val zerosMatrix = DenseMatrix.zeros[Double](2, 3)
println(zerosMatrix.t)
//全0向量
val zerosVector = DenseVector.zeros[Double](3).toDenseMatrix
println(zerosVector)
//全1矩阵
val onesMatrix = DenseMatrix.ones[Double](2, 2)
println(onesMatrix)
//全1向量
val onesVector = DenseVector.ones[Double](2)
println(onesVector)
//按照数值填充向量
val fillVector = DenseVector.fill(5){3.0}
println(fillVector)
//satrt=开始数值。end结束数值。step=步长
val rangeVector = DenseVector.range(0,10)
println(rangeVector)
//线性等分向量,没有这个方法。可能我是2.11的
//val linespaceVector = DenseVector.linspace(0,1,100)
//单位矩阵
val eyeMatrix = DenseMatrix.eye[Double](3)
println(eyeMatrix)
//对角矩阵
val diagMatrix = diag(DenseVector(1.0,2.0,3.0))
println(diagMatrix)
//按照行创建矩阵
val lineMatrix = DenseMatrix((1.0,2.0),(3.0,4.0))
println(lineMatrix)
//按照行创建矩阵
val lineVector = DenseVector((1.0,2.0))
println(lineVector)
//向量转置
println(rangeVector.t)
//矩阵转置
println(lineMatrix.t)
//从函数创建向量
val tabVector = DenseVector.tabulate[Double](3){i=>i*2}
println(tabVector)
//从函数创建矩阵
val tabMatrix = DenseMatrix.tabulate[Double](3,5){case (i,j)=>i+j}
println(tabMatrix)
//从数组创建矩阵
val arrMatrix = new DenseMatrix[Double](2,3,Array(0.0,1,2,3,4,5))
println(arrMatrix)
//从数组创建向量
val arrVector = new DenseVector[Int](Array(0,1,2,3,4))
println(arrVector)
//0-1的随机向量
val randVector = DenseVector.rand[Double](4)
println(randVector)
//0-1的随机矩阵
val randMatrix = DenseMatrix.rand[Double](3,5)
println(randMatrix)
}
}