2014-06-25 18 views
6

Powiedz, że mam tablicę złożonego typu w Julii. Rozumiem, że nie mogę po prostu przypisać wartości do tablicy, ponieważ jej elementy są niezdefiniowane. Na przykład kodNiezainicjowane tablice w Julii

type struct 
    u::Int64 
    v::Int64 
end 

X = Array(struct, 100) 
X[10].u = 3 

wygeneruje ten błąd:

ERROR: access to undefined reference 
in getindex at array.jl:277 
in include at boot.jl:238 
in include_from_node1 at loading.jl:114 

Jaki jest standardowy sposób sobie z tym poradzić? Na razie robię coś takiego:

samples = Array(Sample1d, num_samples) 
fill!(samples, Sample1d(0, 0, 0)) 
samples[i] = ... 

Czy jest to bardziej zwięzły lub Julijski sposób na zrobienie tego?

Odpowiedz

1

Możesz przypisać wartości niezainicjowanym lokalizacjom w tablicach. Po prostu nie można wyodrębnić wartości z niezainicjowanych lokalizacji.

5

Można użyć fill stworzyć i wypełnić tablicę w tym samym czasie:

type struct 
    u::Int 
    v::Int 
end 

struct() = struct(0, 0) 
X = fill(struct(), 100) 
X[10].u = 3