Though note those docs only apply if you're running 0.4. (Also FYI: if you're running 0.3, SubArray performance will be relatively poor for many tasks.)
--Tim On Wednesday, July 15, 2015 05:49:07 AM David Gold wrote: > Also see http://docs.julialang.org/en/latest/devdocs/subarrays/ > > On Wednesday, July 15, 2015 at 6:14:14 AM UTC-4, Ferran Mazzanti wrote: > > Hi folks, > > > > I have a little mess with the way arrays are being handled in Julia. I > > come from C and fortran95 and I know I can do the following things there > > using pointers: imagine I have a big array A. Then I can use pointers to > > define W a subsection of A, such that if I modify W then A is modified, > > and > > if I modify A then W is modified. In this way I have one and the same > > data, > > which I can manipulate by acting on A or on W. > > > > I'd like to do the same thing in Julia, but don't know how. Somehow it > > works if I use the whole array. For instance in this exemple: > > > > Wall = ones(2,2) > > 1.0 1.0 > > 1.0 1.0 > > > > W = Wall > > 1.0 1.0 > > 1.0 1.0 > > > > W[1,1] = 0. > > 0.0 > > > > Wall > > 2x2 Array{Float64,2}: > > 0.0 1.0 > > 1.0 1.0 > > > > Wall[1,2] = 2. > > 0.0 2.0 > > 1.0 1.0 > > > > W > > 2x2 Array{Float64,2}: > > 0.0 2.0 > > 1.0 1.0 > > > > ...so it works both ways. That's exactly what I want, but now not just > > with W and Wall being the same, but with W being a part of Wall. > > I could try something like > > > > Wall = ones(3,3) > > 3x3 Array{Float64,2}: > > 1.0 1.0 1.0 > > 1.0 1.0 1.0 > > 1.0 1.0 1.0 > > > > W = Wall[2:end,2:end] > > 1.0 1.0 > > 1.0 1.0 > > > > W[1,1] = 3. > > 3.0 > > > > W > > 2x2 Array{Float64,2}: > > 3.0 1.0 > > 1.0 1.0 > > > > Wall > > 3x3 Array{Float64,2}: > > 1.0 1.0 1.0 > > 1.0 1.0 1.0 > > 1.0 1.0 1.0 > > > > ...so W has been updated but not Wall. If I update W itdoesn't get copied > > to Wall either. > > > > So I know how to do automatic updating when the two arrays are of the same > > size, but can it be done with subsections of arrays as (I want it to be) > > in > > the example above? > > > > Thanks for your help and patience, > > > > Ferran.
