Arrays 将数组{Int,1}转换为数组{Int,2}
我使用了一个函数,它将数组{Int,2}作为参数,但当数组仅包含1个整数时,它不起作用(在这种情况下,数组类型是数组{Int,1}) 我知道如何创建包含2个或更多整数的数组{Int,2}:Arrays 将数组{Int,1}转换为数组{Int,2},arrays,type-conversion,julia,Arrays,Type Conversion,Julia,我使用了一个函数,它将数组{Int,2}作为参数,但当数组仅包含1个整数时,它不起作用(在这种情况下,数组类型是数组{Int,1}) 我知道如何创建包含2个或更多整数的数组{Int,2}: S2 = [1 2] # S2 is an Array{Int, 2} S3 = [1 2 3] # S3 is an Array{Int, 2} 但我不知道如何创建只有1个整数的数组{Int,2}: S1 = [1] # S1 is an Array{Int, 1} 是否可能?使用hcat功能,例如:
S2 = [1 2] # S2 is an Array{Int, 2}
S3 = [1 2 3] # S3 is an Array{Int, 2}
但我不知道如何创建只有1个整数的数组{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
使用
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
另一种可能是使用
重塑
julia> S1 = [1]
1-element Array{Int64,1}:
1
julia> reshape(S1,1,1)
1×1 Array{Int64,2}:
1
另一种可能是使用
重塑
julia> S1 = [1]
1-element Array{Int64,1}:
1
julia> reshape(S1,1,1)
1×1 Array{Int64,2}:
1
可能的重复可能的重复