vin*_*cet 1 vector matrix julia
l具有n乘n的矩阵,其转换为下三角矩阵.然后我想使用vec()转换下部的traingular矩阵,但它不起作用.这是我的代码错误
x=rand(4,4)
4x4 Array{Float64,2}:
0.453539 0.00897806 0.590051 0.401164
0.219694 0.322613 0.826784 0.528058
0.216173 0.752796 0.318784 0.721735
0.648246 0.0184203 0.6562 0.69907
c=LowerTriangular(x)
4x4 LowerTriangular{Float64,Array{Float64,2}}:
0.453539 0.0 0.0 0.0
0.219694 0.322613 0.0 0.0
0.216173 0.752796 0.318784 0.0
0.648246 0.0184203 0.6562 0.69907
vec(c)
ERROR: ArgumentError: Triangular matrix must have two dimensions
in similar at linalg/triangular.jl:27
in reshape at abstractarray.jl:213
in vec at abstractarraymath.jl:14
Run Code Online (Sandbox Code Playgroud)
是否有任何函数将三角矩阵转换为向量?
谢谢
小智 5
您可以使用 collect
julia> x=rand(4,4)
4x4 Array{Float64,2}:
0.98258 0.786791 0.776911 0.282855
0.881244 0.270507 0.557487 0.376426
0.915609 0.165074 0.388279 0.107354
0.461926 0.210621 0.676718 0.161106
julia> y=LowerTriangular(x)
4x4 LowerTriangular{Float64,Array{Float64,2}}:
0.98258 0.0 0.0 0.0
0.881244 0.270507 0.0 0.0
0.915609 0.165074 0.388279 0.0
0.461926 0.210621 0.676718 0.161106
julia> collect(y)
16-element Array{Float64,1}:
0.98258
0.881244
0.915609
0.461926
0.0
0.270507
0.165074
0.210621
0.0
0.0
0.388279
0.676718
0.0
0.0
0.0
0.161106
Run Code Online (Sandbox Code Playgroud)