On Friday, April 25, 2014 01:12:15 AM Gunnar Farnebäck wrote:
> The padarray function in the Images package can solve your problem or give
> you inspiration if you want to do it differently.
...a very nice function indeed, which I swiped from Gunnar! (Thanks!)
--Tim
>
> Den fredagen den 25:e april 2014 kl. 05:43:40 UTC+2 skrev Tomas Lycken:
> > Given the following function definition
> >
> > function foo{T<:FloatingPoint}(A::Array{T})
> >
> > B = copy(A)
> > #do some work on B
> >
> > end
> >
> > is there any (easy) way I can replace the call to copy() with a call that
> > allocates an array that is 2 elements longer in every dimension, and
> > copies
> > A into the middle? A few examples might clarify what I mean:
> >
> > A = [1 2] => B = [0 1 2 0]
> > A = [1 2; 3 4] => B = [0 0 0 0; 0 1 2 0; 0 3 4 0; 0 0 0 0]
> >
> > In two dimensions I could do the following
> >
> > B = similar(A, eltype(A), ([size(A)...].+2)...);
> > B[2:end-1,2:end-1] = copy(A);
> >
> > but on the second line I'm making assumptions about the number of
> > dimensions. Is it possible to accomplish this without making that
> > assumption?
> >
> > // Tomas