I think I come to an understanding of how the splatting command works. Thank you, it is very useful.
julia> hcat(x)
3×1 Matrix{Any}:
[1.0, 3.0]
2.0
3.0
julia> hcat(x...)
ERROR: DimensionMismatch("mismatch in dimension 1 (expected 2 got 1)")
Stacktrace:
[1] _cs
@ ./abstractarray.jl:1626 [inlined]
[2] _cshp
@ ./abstractarray.jl:1622 [inlined]
[3] _cat_size_shape(dims::Tuple{Bool, Bool}, shape::Tuple{Int64, Int64}, X::Float64, tail::Float64)
@ Base ./abstractarray.jl:1602
[4] cat_size_shape(::Tuple{Bool, Bool}, ::Vector{Float64}, ::Float64, ::Vararg{Float64, N} where N)
@ Base ./abstractarray.jl:1600
[5] _cat_t(::Val{2}, ::Type{Float64}, ::Vector{Float64}, ::Vararg{Any, N} where N)
@ Base ./abstractarray.jl:1646
[6] cat_t(::Type{Float64}, ::Vector{Float64}, ::Vararg{Any, N} where N; dims::Val{2})
@ Base ./abstractarray.jl:1643
[7] _cat
@ ./abstractarray.jl:1641 [inlined]
[8] #cat#129
@ ./abstractarray.jl:1781 [inlined]
[9] hcat(::Vector{Float64}, ::Float64, ::Float64)
@ Base ./abstractarray.jl:1761
[10] top-level scope
@ none:1
julia> x=[[1., 3.], [2., 2.], [3., 3.]]
3-element Vector{Vector{Float64}}:
[1.0, 3.0]
[2.0, 2.0]
[3.0, 3.0]
julia> hcat(x...)
2×3 Matrix{Float64}:
1.0 2.0 3.0
3.0 2.0 3.0