Arrays 有没有办法将数组转换为整数或浮点?
在Julia 1.5.4中,我尝试将一个带有int的数组更改为一个int,如下所示:Arrays 有没有办法将数组转换为整数或浮点?,arrays,parsing,integer,julia,Arrays,Parsing,Integer,Julia,在Julia 1.5.4中,我尝试将一个带有int的数组更改为一个int,如下所示: x = [1,2,3] 在这里,我将尝试或使用代码/命令(这里:example()) 理想输出如下: 123 Int32 我已经尝试用parse()或push来解决这个问题!()或类似的事情。但一切都不顺利。 我找不到类似的问题…这是您需要的吗 julia> x = [1,2,3] 3-element Vector{Int64}: 1 2 3 julia> list2int(x) =
x = [1,2,3]
在这里,我将尝试或使用代码/命令(这里:example())
理想输出如下:
123
Int32
我已经尝试用parse()或push来解决这个问题!()或类似的事情。但一切都不顺利。
我找不到类似的问题…这是您需要的吗
julia> x = [1,2,3]
3-element Vector{Int64}:
1
2
3
julia> list2int(x) = sum(10 .^ (length(x)-1:-1:0) .* x)
list2int (generic function with 1 method)
julia> list2int(x)
123
您正在查找字符串连接,然后进行分析:
x_new = parse(Int64, string(x...))
您可以在此处找到有关将此功能添加到Julia的问题: 总之,您不想使用字符串,并且应该避免不必要的求幂运算,这两种运算都会非常慢 一个非常简单的解决方案是
evalpoly(10, reverse([1,2,3]))
再多拼一点,你就可以做到
function joindigits(xs)
val = 0
for x in xs
val = 10*val + x
end
return val
end
将许多小数字转换为较大数字的另一种有趣方法是合并原始字节:
julia> reinterpret(Int16, [Int8(2),Int8(3)])
1-element reinterpret(Int16, ::Vector{Int8}):
770
注意770=256*3+2
或对于实际的Int
s:
julia> reinterpret(Int128, [10,1])
1-element reinterpret(Int128, ::Vector{Int64}):
18446744073709551626
(请注意,结果正好是
Int128(2)^64+10
)在将来的问题中包括您正在使用的语言的标记-它有助于引起那些可以帮助您的人的注意。在这里x…
将数组解压为单独的参数,string()
然后将像string(1,2,3)
一样调用“123”。然后将其解析为Int64
。
julia> reinterpret(Int128, [10,1])
1-element reinterpret(Int128, ::Vector{Int64}):
18446744073709551626