on julia0.3 this works:

julia> readdlm("fl")
3x3 Array{Float64,2}:
 -70.0     -70.0  3.0982e-10 
 -69.4531  -70.0  2.54816e-10
 -68.9063  -70.0  2.23406e-10

julia> readdlm("fl", Float64)
3x3 Array{Float64,2}:
 -70.0     -70.0  3.0982e-10 
 -69.4531  -70.0  2.54816e-10
 -68.9063  -70.0  2.23406e-10



On Fri, 2014-07-18 at 13:15, Andrei Berceanu <[email protected]> wrote:
> Here is 1 line from one of my files, after sed-magic:
>
>   -70.0000000000000       -70.0000000000000       3.098203380460164E-010
>   -69.4531250000000       -70.0000000000000       2.548160684589544E-010
>   -68.9062500000000       -70.0000000000000       2.234061987906998E-010
>
> There are 2 spaces at the start of each line and then the column are 
> separated by spaces as well.
> I tried 
>
> readdlm(pumppath, ' ', Float64, '\n')
>
> and get
>
> file entry "" cannot be converted to Float64
>
>
>
> On Friday, July 18, 2014 1:57:00 PM UTC+2, Mauro wrote:
>>
>> > Space is an issue, yes, but I agree, I can process them one by one using 
>> > some sed scripting. I just thought there is a simple idiom corresponding 
>> to 
>> > Python's 2-liner above. 
>> > In fact, I am wondering, how difficult would it be to make julia accept 
>> the 
>> > Fortran double precision format natively - is that a big change in Base? 
>>
>> I had a look: base/datafmt.jl does the file reading but it is quite 
>> cryptic and I didn't quite figure out where the conversion from string 
>> to float occurs.  But probably it's done with the float64 function in 
>> base/string.jl which calls into C: src/builtins.c function jl_strtod. 
>> So, if my digging is right then it's not so easy to change and would 
>> change how strings are parsed into floats everywhere.   
>>
>> Thus probably easiest to write a function which does the parsing. 
>>
>> > On a separate issue, is there an equivalent to numpy's *loadtxt*? 
>>
>> readdlm or readcsv do this.  How did you do it? 
>>
>>

-- 

Reply via email to