我使用了一个以 Array{Int, 2} 作为参数的函数,但是当数组只包含 1 个整数时它不起作用(因为在这种情况下数组类型是 Array{Int, 1} )。
我知道如何使用 2 个或更多整数创建一个 Array{Int, 2} :
S2 = [1 2] # S2 is an Array{Int, 2}
S3 = [1 2 3] # S3 is an Array{Int, 2}
但我不知道如何创建一个只有 1 个整数的 Array{Int, 2} :
S1 = [1] # S1 is an Array{Int, 1}
是否可以?
使用hcat
函数,例如:
julia> hcat(1)
1×1 Array{Int64,2}:
1
如果要将向量转换为矩阵,这也适用:
julia> x = [1]
1-element Array{Int64,1}:
1
julia> hcat(x)
1×1 Array{Int64,2}:
1
编辑:事后你也可以这样做:
julia> fill(10,1,1)
1×1 Array{Int64,2}:
10
它更复杂,但通过这种方式您可以简单地创建一个更高维度的对象,例如:
julia> fill(10,1,1,1)
1×1×1 Array{Int64,3}:
[:, :, 1] =
10
编辑 2:将新的长度维度1
放在任何位置的任何数组的一般解决方案是使用理解:
julia> x = [1 2
3 4]
2×2 Array{Int64,2}:
1 2
3 4
julia> [x[i,k] for i in 1:size(x,1), j in 1:1, k in 1:size(x,2)]
2×1×2 Array{Int64,3}:
[:, :, 1] =
1
3
[:, :, 2] =
2
4
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句