There's always going to be a loop since that's what the computer is doing.
Either you wrote it or someone wrote it for you. In this case you can use a
comprehension:

[ mean(b[i:min(i+9,end)]) for i=1:10:length(b) ]


On Tue, Feb 10, 2015 at 5:48 AM, paul analyst <[email protected]> wrote:

> ok, it is jumping average :)
> Nice way, thx, but unfortunatly lenght of my vecotrs are random, 100 it
> was only like sample.
> reshape of vector length on 256845 is  imposible:)
> Paul
>
>
> W dniu wtorek, 10 lutego 2015 11:18:55 UTC+1 użytkownik Gunnar Farnebäck
> napisał:
>
>> If speed is what's important you almost certainly want some kind of loop.
>>
>> If it's more important not to have a loop you can satisfy your
>> specification with
>>
>> b = reshape(repmat(mean(reshape(a,10,10),1),10),100)
>>
>> although that's not what I would call a moving average.
>>
>> Den tisdag 10 februari 2015 kl. 10:00:36 UTC+1 skrev paul analyst:
>>>
>>> How to quickly count the moving average with one vector and save the other 
>>> vector?
>>> I have vec a and need to fill vec b moving average of a, in this same range.
>>> Is posible to do it whitout while ?
>>>
>>> julia> a=rand(100);
>>> julia> b=zeros(100);
>>>
>>> julia> b[1:10]=mean(a[1:10])
>>> 0.6312220153427996
>>>
>>> julia> b[11:20]=mean(a[11:20])
>>> 0.6356771620528772
>>>
>>> julia> b
>>> 100-element Array{Float64,1}:
>>>  0.631222
>>>  0.631222
>>>  0.631222
>>>  0.631222
>>>  0.631222
>>>  0.631222
>>>  0.631222
>>>  0.631222
>>>  0.631222
>>>  0.631222
>>>  0.635677
>>>  0.635677
>>>  0.635677
>>>  0.635677
>>>  0.635677
>>>  0.635677
>>>  0.635677
>>>  0.635677
>>>  0.635677
>>>  ?
>>>  0.0
>>>
>>>
>>> Paul
>>>  0.0
>>>
>>

Reply via email to