MyArray = [[zeros(Int, k) for n = 1:binomial(J, k)] for k = 1:K]

seems to do what you want I think. Using 2 nested 1-d comprehensions 
instead of a single 2-d comprehension.

— Mike
​
On Monday, 21 September 2015 10:37:06 UTC+2, Alan Crawford wrote:
>
>
> Thanks Tomas. If I do:
>
> Y = [Array(Int64,n) for n in map(k -> binomial(J,k), 1:K)]
>
> Then Y[1] gives the desired result (i.e. Y[1][k] is a length 1 vector). 
> However, the issue for Y[2] and above. For example, if I do Y[2][k] where 
> k∈[1,binomial(J,2)]
> then i get a length 1 vector, whereas I would like length 2 vector. 
> Similarly for Y[3][k] I would like a length 3 vector.
>
>
> On Monday, 21 September 2015 09:23:56 UTC+1, Tomas Lycken wrote:
>>
>> Ah.
>>
>> Maybe [Array(Int64,n) for n in map(k -> binomial(J,k), 1:K)] is what 
>> you’re looking for?
>>
>> // T
>>
>> On Monday, September 21, 2015 at 10:18:31 AM UTC+2, Alan Crawford wrote:
>>
>> The lower case k is intentional. I didn't want such a 'large' array as 
>>> the one created when I use K because large parts of that array would be 
>>> redundant. Ideally, I want this array to be as small as possible, 
>>> especially since J and K might be quite a bit larger than in the example.
>>>
>>> On Monday, 21 September 2015 09:13:53 UTC+1, Tomas Lycken wrote:
>>>>
>>>> Are you sure that’s not just a typo between k and K (note the case 
>>>> difference)?
>>>>
>>>> This works for me:
>>>>
>>>> J=10
>>>> K=3
>>>> MyArray = [Array(Int64,k) for k in 1:K, n in 1:binomial(J,K)]
>>>>
>>>> // T
>>>>
>>>> On Monday, September 21, 2015 at 10:08:13 AM UTC+2, Alan Crawford wrote:
>>>>
>>>> Hi,
>>>>>
>>>>> I'd like to be able to define an array of vectors where the number of 
>>>>> vectors in the array is linked to the length of the vector. For example, 
>>>>> I 
>>>>> want to be define an array with say 10 scalars, 45 length 2 vectors, 120 
>>>>> length 3 vectors, .... and so on. Intuitively, I thought the following 
>>>>> code 
>>>>> might achieve this:
>>>>>
>>>>> J=10
>>>>> K=3
>>>>> MyArray = [Array(Int64,k) for k in 1:K, n in 1:binomial(J,k)]
>>>>>
>>>>>
>>>>> However, it seems i cannot use k to define the number of element 
>>>>> indexed by n.  
>>>>>
>>>>> I was wondering if anyone knew how to create the desired array?
>>>>>
>>>>> Thanks
>>>>> Alan
>>>>>
>>>> ​
>>>>
>>> ​
>>
>

Reply via email to