On Wednesday, June 18, 2014 11:37:02 AM UTC+8, Jameson wrote:
>
> Eliminate all uses of eval, by replacing your input expression with an 
> anonymous function 
>
>
Doh, yep, much better idea. Ok does this look better?

function lowpass(input::Float64, lp::Float64, g::Float64)
    hp::Float64 = input - lp
    lp += g * hp
    [lp, hp]
end
function parametricarray2D(f, time::Vector{Float64})
    len = length(time)
    ret = f(time[1])
    output = Array(Float64, len, length(ret))
    output[1,:] = ret
    for i in 1:len-1
        output[i,:] = f(time[i])
    end
    output
end
s = 0.0;
data = parametricarray2D(t->begin input=sin(100.0*t); [t, input, 
lowpass(input, s, 0.5)] end, linspace(0.0,2.0pi,2*44100)) 

Reply via email to