如前所述,我有一个一维矩阵向量,例如:
P_predefined = [[.3 .4 .2 .1], [.2 .3 .5 0.], [.1 0. .8 .1], [.4 0. 0. .6]]
Run Code Online (Sandbox Code Playgroud)
我想把它变成一个2D矩阵,我尝试使用vcat,我希望它的行为像Python中的vstack,但它不起作用。
vcat(algorithm.predefinedP)
Run Code Online (Sandbox Code Playgroud)
它仍然返回一个向量
[[0.3 0.4 0.2 0.1], [0.2 0.3 0.5 0.0], [0.1 0.0 0.8 0.1], [0.4 0.0 0.0 0.6]] #Vector{Matrix{Float64}}
Run Code Online (Sandbox Code Playgroud)
我应该如何以正确的方式去做?
小智 7
Julia 1.9 有stack,可以通过 Compat 包在早期的 Julia 版本上使用。
julia> using Compat\n\njulia> P_predefined = vec.([[.3 .4 .2 .1], [.2 .3 .5 0.], [.1 0. .8 .1], [.4 0. 0. .6]])\n4-element Vector{Vector{Float64}}:\n [0.3, 0.4, 0.2, 0.1]\n [0.2, 0.3, 0.5, 0.0]\n [0.1, 0.0, 0.8, 0.1]\n [0.4, 0.0, 0.0, 0.6]\n\njulia> stack(P_predefined)\n4\xc3\x974 Matrix{Float64}:\n 0.3 0.2 0.1 0.4\n 0.4 0.3 0.0 0.0\n 0.2 0.5 0.8 0.0\n 0.1 0.0 0.1 0.6\n\njulia> stack(P_predefined; dims=1)\n4\xc3\x974 Matrix{Float64}:\n 0.3 0.4 0.2 0.1\n 0.2 0.3 0.5 0.0\n 0.1 0.0 0.8 0.1\n 0.4 0.0 0.0 0.6\nRun Code Online (Sandbox Code Playgroud)\n注意:你的P_predefined是矩阵向量1xn,而不是向量。我在这里使用vec它们将它们转换为向量。