上一篇是矩阵的创建、连接等相关操作。
这一篇主要是矩阵的数值计算。
元素加法 | a+b |
---|---|
元素乘法 | *:* |
元素除法 | /:/ |
元素比较 | <:< |
元素相等 | :== |
元素追加 | :+= |
元素追乘 | :*= |
元素最大值 | max(a) |
元素最大值及位置 | argmax(a) |
package breeze
import breeze.linalg.{DenseMatrix, argmax, max}
object Math {
def main(args: Array[String]): Unit = {
val a = DenseMatrix((1, 2, 3), (4, 5, 6))
val b = DenseMatrix((1, 1, 1), (2, 2, 2))
println(a + b)
println("-------------")
//每个元素相乘
println(a *:* b)
println("-------------")
//每个元素相除
println(a /:/ b)
println("-------------")
//比较每个元素的大小
println(a <:< b)
println("-------------")
//是否相等
println(a :== b)
println("-------------")
//追加,每个元素都加1
println(a :+= 1)
println("-------------")
//追乘,每个元素都乘2
println(a :*= 2)
println("-------------")
val x = DenseMatrix((1, 2, 3), (4, 5, 6))
//元素最大值
println(max(x))
println("-------------")
//最大值及其位置
println(argmax(x))
}
}
主要是对矩阵内行、列等的求和函数。
所有元素的和 | sum(a) |
---|---|
某一列求和 | sum(a(::, 1)) |
某一行求和 | sum(a(0, ::)) |
对角线元素和 | trace(a) |
import breeze.linalg.{DenseMatrix, accumulate, sum, trace}
object Sum {
def main(args: Array[String]): Unit = {
val a = DenseMatrix((1, 2, 3), (4, 5, 6))
println(sum(a))
println("-----------")
//对第2列求和
println(sum(a(::, 1)))
println("-----------")
//对第1行求和
println(sum(a(0, ::)))
println("-----------")
//对角线求和,必须是正方形矩阵
val b = DenseMatrix((1, 2, 3), (4, 5, 6), (7, 8, 9))
println(trace(b))
}
}
此外还有很多,如布尔函数、线性代数函数、取整、四舍五入等等。就不多介绍,这些不太常用的可以在需要时去查api即可。