Indexing of a Float64 is actually a bit inconsistent. It works for a single integer, but not for Ranges.
*julia> **a=4.5* *4.5* *julia> **a[1]* *4.5* *julia> **a[1:-1:1]* *ERROR: `getindex` has no method matching getindex(::Float64, ::StepRange{Int64,Int64})* *julia> **a[1:1]* *ERROR: `getindex` has no method matching getindex(::Float64, ::UnitRange{Int64})* On Monday, April 6, 2015 at 10:19:30 AM UTC-6, Jim Christoff wrote: > > Thank you very much for that clear description. That was the problem and > it is producing the expected results. > > On Monday, April 6, 2015 at 10:53:40 AM UTC-4, ggggg wrote: >> >> I suspect you want >> >> ## generate next filter order >> if i==1 >> a[i] = g >> else >> a[i-1:-1:1] = a[i-1:-1:1]-g*a[i-1:-1:1] # **** this is my >> problem area***** >> end >> >> a is first assigned as a Vector{Float64} of length p. Then you did a=g >> which assigns a as a Float64 (this is bad for performance as well, since >> it's not type stable). Then you try to a[1] when i=2, but in Julia (unlike >> MATLAB, and I assume octave) that is not a valid access. You want to make >> sure a stays as a Vector{Float64} the whole time, and while you can change >> the length if you want, you will probalby be better off if you keep it the >> same length as well. >> >