我正在寻找矩阵运算。但是不确定是否有针对它的现有操作。
Ex:P = [1 2; 3 4]和Q = [5 6; 7 8]
[P ; Q] @ [P ; Q] => [P*P ; P*Q ; Q*P ; Q*Q]
@是我正在寻找的操作。 谢谢!
答案 0 :(得分:1)
您可以仅定义自定义运算符,例如:
function ⊗(a::Matrix,b::Matrix)
h1 = Int(size(a,1)/2)
P1 = @view a[1:h1,:]
Q1 = @view a[h1+1:end,:]
h2 = Int(size(b,1)/2)
P2 = @view b[1:h2,:]
Q2 = @view b[h2+1:end,:]
[P1*P2 ; P1*Q2 ; Q1*P2 ; Q1*Q2]
end
现在使用它!
julia> [P ; Q] ⊗ [P ; Q] == [P*P ; P*Q ; Q*P ; Q*Q]
true
也许您需要添加检查尺寸等信息。
您可能还需要具有附加的运算符⊗(a :: Tuple {Matrix,Matrix},b :: Tuple {Matrix,Matrix}),因此不需要合并P
和Q
矩阵,然后分解它们。