Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
julia中的滑动窗口函数_Julia - Fatal编程技术网

julia中的滑动窗口函数

julia中的滑动窗口函数,julia,Julia,我正在寻找一个集合,并在其上滑动一个长度为“w”和步长为“s”的窗口,以获得许多子集合 我已经看到了,但这不允许滑动小于窗口(或分区)长度 我自己写了一些可以工作的东西,但我希望已经有一个函数可以这样做,我只是还没有找到它。你看过吗?在我看来,它做了你想要的,它有滚动和运行函数,这些函数取一个函数,一个向量,和一个窗口大小作为输入,并返回在连续窗口上应用函数的结果。假设z是你的向量,s是你的步长,w是窗口大小,只需执行以下操作: ((@view z[i:i+w-1]) for i in 1:s:

我正在寻找一个集合,并在其上滑动一个长度为“w”和步长为“s”的窗口,以获得许多子集合

我已经看到了,但这不允许滑动小于窗口(或分区)长度


我自己写了一些可以工作的东西,但我希望已经有一个函数可以这样做,我只是还没有找到它。

你看过吗?在我看来,它做了你想要的,它有
滚动
运行
函数,这些函数取一个函数,一个向量,和一个窗口大小作为输入,并返回在连续窗口上应用函数的结果。

假设
z
是你的
向量
s
是你的步长,
w
是窗口大小,只需执行以下操作:

((@view z[i:i+w-1]) for i in 1:s:length(z)-w+1)
例如:

z = collect(1:10)
for e in ((@view z[i:i+4]) for i in 1:2:length(z)-4)
    #do something, try display(e)
end
我刚刚发现,它有一个自定义步长

julia> for i in partition(1:9, 3, 2)
           @show i
       end
i = (1, 2, 3)
i = (3, 4, 5)
i = (5, 6, 7)
i = (7, 8, 9)

还有一个比名字更通用的功能。谢谢,滚动功能看起来很合适。我很惊讶这样的东西还没有出现在标准库中。顺便说一句,@nils gudat我给了你一个向上的投票,但我几乎没有什么名声,所以它可能不会显示出来。实际上,仔细观察后,它似乎不允许自定义步长:/自定义步长是什么意思?啊,等等,你的意思是只计算输入向量每
n
步的滚动函数?我想你可以像
rollmean(rand(100),5)[1:n:end]
那样对结果进行索引,尽管这可能有点低效,因为你计算了所有的滚动平均值,然后扔掉除了
length(input)/n之外的所有滚动平均值