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