2015-05-05 10 views
7

Próbuję uzyskać dostęp do niektórych złożonych liczb, które napisałem do pliku csv w julia, ale mam problem z ich rozpoznaniem. Aby zrozumieć, co się dzieje, należy rozważyć następująceJak załadować plik csv z liczbami zespolonymi w julia?

a = [1+2.3im, 2.3+0im] 
writecsv("test.csv",a) 
b = readcsv("test.csv") 

Teraz, gdybym przesłuchać typy

julia> typeof(b) 
Array{Any,2} 

julia> typeof(a) 
Array{Complex{Float64},1} 

I nie można używać elementów b jako liczb zespolonych, podobnie jak ciąg. (b[1] jest "1.0 + 2.3im", na przykład).

Odpowiedz

8

Oto jeden ze sposobów:

julia> b = map(x->eval(parse(x)),readcsv("test.csv")) 
2x1 Array{Complex{Float64},2}: 
1.0+2.3im 
2.3+0.0im 
+0

A ponieważ jest to ocena kod z pliku, trzeba mieć bardzo dużą pewność, że plik zawiera tylko to, co można się spodziewać. – rickhg12hs