Not sure what the best way is, especially on Julia 0.5 where maybe some sort of view.
But you could always use an Array of Arrays if you don't really need a true multi-dimensional array elsewhere: d = randn(3,n) d2 = [ d[:,i]::Vector{Float64} for i=1:n ] r = randn(3,m) r2 = [ r[:,i]::Vector{Float64} for i=1:m ] function nested_loop!(Y::Array{Complex{Float64}},X::Array{Complex{Float64}}, d::Vector{Vector{Float64}},r::Vector{Vector{Float64}}, n::Int64,m::Int64,f::Int64) for i_1 = 1:f for i_3 = 1:n k = 2*π*i_1*d[i_3] for i_2 = 1:m A = exp(im*dot(k,r[i_2])) Y[i_1,i_2] += X[i_1,i_3] * A end end end end nested_loop!(Y,X,d2,r2,n,m,f) On V0.4 this has less allocations and runs slightly faster (maybe 2-3x) On Tuesday, October 4, 2016 at 11:45:53 PM UTC+11, Niccolo' Antonello wrote: > what is the best way to slice an array without allocating? I thank you! > > On Tuesday, October 4, 2016 at 1:20:29 PM UTC+2, Kristoffer Carlsson wrote: >> >> The slicing of "r" will also make a new array and thus allocate. > >