a) Your second option works for me:
~~~
julia> testtuple = (1,2,3)
(1,2,3)
julia> testvar = 4
4
julia> tuple(testtuple...,testvar)
(1,2,3,4)
~~~
b) I'm not sure what the cleanest code for your example would be, but
here's one possibility:
~~~
julia> tuplearray = [(1,2,3),(10,20,30),(100,200,300)]
3-element Array{(Int64,Int64,Int64),1}:
(1,2,3)
(10,20,30)
(100,200,300)
julia> aarray = Int[]
0-element Array{Int64,1}
julia> barray = Int[]
0-element Array{Int64,1}
julia> carray = Int[]
0-element Array{Int64,1}
julia> for (a,b,c) in tuplearray
push!(aarray,a)
push!(barray,b)
push!(carray,c)
end
julia> aarray
3-element Array{Int64,1}:
1
10
100
julia> barray
3-element Array{Int64,1}:
2
20
200
julia> carray
3-element Array{Int64,1}:
3
30
300
~~~
If would be faster to pre-allocate the arrays (to the length of the
tuplearray), and then just put the elements in at the correct indices, but
I'm not sure if that matters for your application.
-- Leah
On Thu, Jul 24, 2014 at 4:15 PM, <[email protected]> wrote:
> Hi all,
>
> I thought to just add to my previous thread, but created a new one because
> the topic is a bit different. Hope y'all don't mind.
>
> Anyhow:
>
> a) How would I concatenate two tuples? Or a tuple with a variable?
>
> Say I have
>
> testtuple = (1,2,3)
> testvar = 4
>
> and want to get
>
> newtuple = (1,2,3,4)
>
> (not ((1,2,3),4)
>
> I've tried
> newtuple = tuple(testtuple...,testvar...)
> newtuple = tuple(testtuple...,testvar)
> newtuple = testtuple...,testvar
>
> but none of those have worked to produce the desired result.
>
> b) I have an array of tuples
>
> tuplearray = [(a1,b1,c1),(a2,b2,c2)...,(an,bn,cn)]
>
> How could I then unpack the array into
>
> aarray = [a1,a2...,an]
> barray = [b1,b2...,bn]
> carray = [c1,c3...,cn]
>
> such that each position in the tuple gets unpacked into a corresponding
> individual array?
>
> In Python, I would use
>
> alist,blist,clist = zip(*tuplelist)
>
> It appears that
>
> aarray,barray,carray = zip(tuplearray...)
>
> is not the Julia equivalent.
>
> My version of Julia is the .3 RC.
>
> Thanks for your help
>