Leah, thanks for your detailed response --
I will take your advice and try to rework the code to pre-allocate for b).
In regards to a), I keep on getting the error message with the second option
ERROR: type: apply: expected Function, got (Int64,Int64,Int64)
Just making sure, are you using 0.3? If so, hmm, I would be a bit stumped
as to why the same line is not working for me.
On Thursday, July 24, 2014 5:30:44 PM UTC-4, Leah Hanson wrote:
>
> 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] <javascript:>> 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
>>
>
>