Unfinished FAQ about dots: 
https://github.com/JuliaLang/julia/pull/8065#issuecomment-52747406

 -- John

On Nov 12, 2014, at 9:14 AM, Robert DJ <[email protected]> wrote:

> Thanks a lot - this really cleared some thing in my head!
> 
> Using the dims argument as "dims..." had not occurred to me. Can you explain 
> how the dots work (or point to reference)?
> 
> I realized now that the part about the C matrix was oversimplified here, but 
> now that I seem to have befriended the tuples it works :-) 
> 
> (That Kronecker question was stupid of me; sorry :-))
> 
> Thanks again!
> 
> On Tuesday, November 11, 2014 4:31:21 PM UTC+1, David Gonzales wrote:
> Reworked some of the construction to be more succint:
> 
> function example(dims...)
>     A = [zeros(2^l*[dims...]...) for l = 0:2]
>     @show A
> 
> 
>     J = [1 3 ; 2 4]
>     I = kron(J, ones(Int,2,2))
>     K = rand(4)
>     B = K[I]
>     @show B
> 
> 
>     C = zeros( dims... )
>     @show C
>     
>     nothing    
> end
> 
> 
> 
> This is running on version 0.4-dev+1307
> 
> On Tuesday, November 11, 2014 3:19:38 PM UTC+2, Robert DJ wrote:
> Hi
> 
> I've run into some array issues that I suspect are quite easy, but I haven't 
> found answers on Uncle Google or in the docs.
> 
> In the example below I would like to do the following (more elegant):
> 
> - Create the array of arrays A where the size of the inner arrays are 
> determined by the input 'dims...'. 
> Creating the D array seems cumbersome. 
> 
> - Create the array B with a block structure defined by the array I. 
> The Kronecker product is automatically a Float even though both factors are 
> Int's and Float doesn't seem to work as indices; is there a better way to 
> circumvent this than ifloor?
> 
> - repmath/reshape seems to like tuples, but not arrays as the new dimensions. 
> Is there a way to convert between tuples and arrays?
> 
> Thanks,
> 
> Robert
> 
> 
> function example(dims...)
>     D = Array(Int, 2)
>     D[1] = dims[1]
>     D[2] = dims[2]
>     A = [zeros(2^l*D[1], 2^l*D[2]) for l = 0:2]
>     # Not working:
>     #A = [zeros(2^l*dims) for l = 0:2]
> 
>     J = [1 3 ; 2 4]
>     I = ifloor(kron(J, ones(2,2)))
>     K = rand(4)
>     B = K[I]
> 
>     C = zeros( prod(D) )
>     C = reshape(C, dims)
>     # Not working:
>     #C = reshape(C, D)
> end
> 

Reply via email to