I haben eine dreidimensionale Anordnung wie folgt definiert:Passing zweidimensionales Array auf eine Funktion, in Julia
x=zeros(Float64,2,2,2)
I diejenigen x
zugewiesen werden soll durch x
auf eine Funktion, eine Schicht zu einem Zeitpunkt übergeben. Die Funktion ist:
function init(p,y)
y=ones(p,p)
end
und ich werde x
passieren, wie folgt:
for k=1:2
init(2,x[2,2,k])
end
aber wenn ich das tun, x
ist Nullen, nicht diejenigen. Warum?
julia> x
2x2x2 Array{Float64,3}:
[:, :, 1] =
0.0 0.0
0.0 0.0
[:, :, 2] =
0.0 0.0
0.0 0.0
Jede Idee, wie Julia zu bekommen diejenigen x
zuweisen?
Ich denke, die Frage ist, nur eine Schicht auf einmal passieren, nicht die gesamte 3D-Matrix. Wenn Sie genau das tun, übergeben Sie eine Ebene, dann wird scheinbar eine tiefe Kopie dieser Ebene übergeben, und das wird in der 'init'-Funktion geändert, was das Problem ist. – Ferenc