留学・音ゲー・研究備忘録

heine98の音ゲー・研究・留学の記録。PCの知識はちょっとシェルから操作できます、くらいの人間。

Julia: 行列の転置はArrayではない

最初からなのかどっかのバージョンからなのか知らないが、Juliaで行列での転置操作を行うとArrayがArrayでなくなる。どういうことかというと、

A = zeros(2,2)
B = A'
C = transpose(A)

とすると、AはArray{Float64,2}となるが、BはAdjoint{Float64,Array{Float64,2}}に、CはTranspose{Float64,Array{Float64,2}}になる。 もしtype stableな関数を書いているならば、これで関数の引数が違うのでエラーが出てしまう。

どうするのが正解なのかわからないが、とりあえず

A = zeros(2,2)
D = copy(A')

とすれば、DはArray{Float64,2}になるので、現状これを使うしかなさそう。なんか明らかに間抜けなんだが。。。