On Fri, Oct 16, 2015 at 5:35 PM, Thuener Silva <[email protected]> wrote:
> I'm having this kind of problem in different situations. Another example:
>
> julia> groups_1 = [Array((Int),0) for i=1:K]
> 5-element Array{Array{Int64,1},1}:
> []
> []
> []
> []
> []
>
> julia> groups_1[size(groups_1[i],1) .!= 0 for i=1:size(groups_1,1)]
> ERROR: `Array{T,N}` has no method matching
> Array{T,N}(::Array{Array{Int64,1},1}, ::Int64)
> in anonymous at no file
I don't think this kind of indexing is supported.
>
> The workaround:
> julia> not_empty = [size(groups_1[i],1) .!= 0 for i=1:size(groups_1,1)]
> 5-element Array{Any,1}:
> false
> false
> false
> false
> false
>
> julia> not_empty = convert( Array{Bool,1}, not_empty)
> 5-element Array{Bool,1}:
> false
> false
> false
> false
> false
You don't need the convert, not_empty = Bool[.....] should work
>
> julia> groups_1 = groups_1[not_empty]
> 0-element Array{Array{Int64,1},1}
>
> On Friday, October 16, 2015 at 3:58:19 PM UTC-3, Steven G. Johnson wrote:
>>
>>
>>
>> On Friday, October 16, 2015 at 1:55:19 PM UTC-4, Andras Niedermayer wrote:
>>>
>>> You can also use `map`, which is better at type inference:
>>>
>>> julia> M=10
>>> 10
>>>
>>> julia> [[i] for i=1:M]
>>> 10-element Array{Any,1}:
>>
>>
>> As usual, type inference is much better if you don't run it in global
>> scope (that's why your "map" example worked better):
>>
>> julia> f(M) = [[i] for i=1:M]
>>
>> f (generic function with 1 method)
>>
>>
>> julia> f(10)
>>
>> 10-element Array{Array{Int64,1},1}:
>>
>> [1]
>>
>> [2]
>>
>> [3]
>>
>> [4]
>>
>> [5]
>>
>> [6]
>>
>> [7]
>>
>> [8]
>>
>> [9]
>>
>> [10]