矩陣算術

當應用於矩陣時,Julia 使用算術運算的標準數學含義。有時,需要元素操作。這些標記為操作符之前的句點(.)以元素方式完成。 (請注意,元素操作通常不如迴圈有效。)

總和

矩陣上的+運算元是矩陣和。它類似於元素和,但它不會廣播形狀。也就是說,如果 AB 的形狀相同,則 A + BA .+ B 相同; 否則,A + B 是一個錯誤,而 A .+ B 可能不一定。

julia> A = [1 2
            3 4]
2×2 Array{Int64,2}:
 1  2
 3  4

julia> B = [5 6
            7 8]
2×2 Array{Int64,2}:
 5  6
 7  8

julia> A + B
2×2 Array{Int64,2}:
  6   8
 10  12

julia> A .+ B
2×2 Array{Int64,2}:
  6   8
 10  12

julia> C = [9, 10]
2-element Array{Int64,1}:
  9
 10

julia> A + C
ERROR: DimensionMismatch("dimensions must match")
 in promote_shape(::Tuple{Base.OneTo{Int64},Base.OneTo{Int64}}, ::Tuple{Base.OneTo{Int64}}) at ./operators.jl:396
 in promote_shape(::Array{Int64,2}, ::Array{Int64,1}) at ./operators.jl:382
 in _elementwise(::Base.#+, ::Array{Int64,2}, ::Array{Int64,1}, ::Type{Int64}) at ./arraymath.jl:61
 in +(::Array{Int64,2}, ::Array{Int64,1}) at ./arraymath.jl:53

julia> A .+ C
2×2 Array{Int64,2}:
 10  11
 13  14

同樣,- 計算矩陣差異。+- 都可以用作一元運算子。

製品

矩陣上的*運算元是矩陣乘積 (不是元素乘積)。對於 elementwise 產品,請使用 .*運算子。比較(使用與上面相同的矩陣):

julia> A * B
2×2 Array{Int64,2}:
 19  22
 43  50

julia> A .* B
2×2 Array{Int64,2}:
  5  12
 21  32

鮑爾斯

^運算子計算矩陣求冪 。矩陣求冪可用於快速計算某些重現的值。例如, Fibonacci 數可以通過矩陣表示式生成

fib(n) = (BigInt[1 1; 1 0]^n)[2]

像往常一樣,.^運算子可用於元素取冪是所需操作的位置。