【发布时间】:2015-12-19 21:33:03
【问题描述】:
这是我要读入 Julia 的文件中的行:
O1 O 0.00351(19) 0.66716(19) -0.36485(16)
我想替换括号并将它们读为浮点数。我认为这应该有效,但它没有。
lines = readlines(open("myfile"))
line = lines[1]
frac_coords = split(line)[3:end]
i = 1
frac_coords[i] = replace(frac_coords[i], "(", "")
frac_coords[i] = replace(frac_coords[i], ")", "")
frac_coords[i] = parse(Float64, frac_coords[i])
我得到错误:
LoadError: MethodError: `convert` has no method matching convert(::Type{SubString{ASCIIString}}, ::Float64)
This may have arisen from a call to the constructor SubString{ASCIIString}(...),
since type constructors fall back to convert methods.
Closest candidates are:
call{T}(::Type{T}, ::Any)
convert{T<:AbstractString}(::Type{SubString{T<:AbstractString}}, !Matched::T<:AbstractString)
convert{T<:AbstractString,S<:Union{Char,Int32,UInt32}}(::Type{T<:AbstractString}, !Matched::AbstractArray{S<:Union{Char,Int32,UInt32},1})
...
while loading In[53], in expression starting on line 14
in setindex! at array.jl:313
我尝试过转换为 AbstractStrings。一开始是convert(Array{ASCIIString}, split(line)[3:end])。
这不是更容易吗?
【问题讨论】:
标签: julia