A subtle difference for Julia v0.3:

const nchans = size(userData.samples, 2)
const samples = sub(userData.samples, tuple(rng, ntuple(nchans - 1, _
->:)...)...)

because (I think) of https://github.com/JuliaLang/julia/issues/4869

On Saturday, February 7, 2015 at 1:44:28 PM UTC-5, Daniel Casimiro wrote:
>
> FWIW, I came up with the following snippet to get the behavior that I want:
>
> const nchans = size(userData.samples, 2)
> const samples = sub(userData.samples, tuple(rng, ntuple(nchans - 1, _
> ->:)...))
>
> It appears to work.
>
> On Sunday, February 1, 2015 at 8:38:09 PM UTC-5, Tim Holy wrote:
>>
>> SubArrays have been entirely rewritten in 0.4, and can do quite a few 
>> tricks 
>> that the old ones can't. Changing the dimensionality of the view compared 
>> to 
>> the parent, as in your example, is one of them. Here's another example of 
>> something you simply can't do on 0.3: 
>>
>> julia> A = reshape(1:15, 3, 5) 
>> 3x5 Array{Int64,2}: 
>>  1  4  7  10  13 
>>  2  5  8  11  14 
>>  3  6  9  12  15 
>>
>> julia> b = sub(A, [2, 7, 8]) 
>> 3-element SubArray{Int64,1,Array{Int64,2},(Array{Int64,1},),0}: 
>>  2 
>>  7 
>>  8 
>>
>> julia> b[2] = -1 
>> -1 
>>
>> julia> A 
>> 3x5 Array{Int64,2}: 
>>  1  4  -1  10  13 
>>  2  5   8  11  14 
>>  3  6   9  12  15 
>>
>> If anything, the divergence between the two will grow further once 
>> https://github.com/JuliaLang/julia/issues/9874 is addressed. 
>>
>> Best, 
>> --Tim 
>>
>> On Sunday, February 01, 2015 12:02:56 PM Daniel Casimiro wrote: 
>> > Hi, 
>> > 
>> > I noticed that the "sub" function behaves differently in master and 
>> version 
>> > 0.3.5, when handling data of type Array{Float64, 1}. I am not sure if 
>> the 
>> > change is intentional. 
>> > 
>> > The following works as expected on Julia master: 
>> > 
>> > *julia>* *sub([1.0; 2; 3; 4], 1:3, :)* 
>> > 
>> > but, fails in version 0.3.5 with the following error: 
>> > > *ERROR: `sub` has no method matching sub(::Array{Float64,1}, 
>> > > 
>> > > ::(UnitRange{Int64},UnitRange{Int64}))* 
>> > > 
>> > > * in sub at subarray.jl:80** in sub at subarray.jl:132* 
>> > 
>> > Is this a bug in Julia 0.3.5 or master? 
>> > 
>> > This came up in this pull request: 
>> > https://github.com/dancasimiro/WAV.jl/pull/20. I just figured out that 
>> my 
>> > "fix" is broken too. 
>> > 
>> > Thanks. 
>>
>>

Reply via email to