Julia 对于回路-非重叠块尺寸

Julia 对于回路-非重叠块尺寸,julia,Julia,我正在处理一个问题,我在不同的块宽度上运行计算,比如说8,16,32块。。。。1024 让我们看看宽度为8的块的外观: size_8 = collect(1:8:1024) julia> print(size_8) [1, 9, 17, 25, 33, 41, 49, 57, 65, 73, 81, 89, 97, 105, 113, 121, 129, 137, 145, 153, 161, 169, 177, 185, 193, 201, 209, 217, 225, 233, 2

我正在处理一个问题,我在不同的块宽度上运行计算,比如说8,16,32块。。。。1024

让我们看看宽度为8的块的外观:

size_8 = collect(1:8:1024)

julia> print(size_8)
[1, 9, 17, 25, 33, 41, 49, 57, 65, 73, 81, 89, 97, 105, 113, 121, 129, 137, 145, 153, 161, 169, 177,
 185, 193, 201, 209, 217, 225, 233, 241, 249, 257, 265, 273, 281, 289, 297, 305, 313, 321, 329, 337,
 345, 353, 361, 369, 377, 385, 393, 401, 409, 417, 425, 433, 441, 449, 457, 465, 473, 481, 489, 497,
 505, 513, 521, 529, 537, 545, 553, 561, 569, 577, 585, 593, 601, 609, 617, 625, 633, 641, 649, 657,
 665, 673, 681, 689, 697, 705, 713, 721, 729, 737, 745, 753, 761, 769, 777, 785, 793, 801, 809, 817,
 825, 833, 841, 849, 857, 865, 873, 881, 889, 897, 905, 913, 921, 929, 937, 945, 953, 961, 969, 977,
 985, 993, 1001, 1009, 1017]
第一个街区是1:9,第二个街区是9:17,第三个街区是17:25,依此类推

接下来,我希望使用I迭代器将这些块宽度放置在for循环中。我不想硬编码,比如
size_8[I]:size_8[I]+8
这是因为我希望循环遍历
n,8,16,32….的每个值。。。。1024
我不想编码一大堆8号、16号、32号。。。。大小为1024个向量。我宁愿循环遍历n的每个块大小值

如果我们采取滚动循环,我们可以做到:

n=8 # set width of rolling window
for i = n:size(something,1) 
out[i] = mean(something[i-n+1:i] 
end 
这是一个窗口宽度为
8
,用于重叠块尺寸,以增加
i(i+1)
,正如我将要描述的,每次需要将
i
增加
8

因此,在上述问题中,我需要从位置
1
开始,每次将
I
增加8,而不是1(我现在意识到这可能不可能),并且每次将上部窗口增加
8
,以便我们有:

做点什么,说“1:9范围,9:17范围,17:25范围内的平均值”。。。。等等-非重叠块


有没有人知道我如何在不使用向量硬编码范围和仅使用
I
迭代器的情况下完成任务?我曾尝试对硬编码块进行编码,但限制太大

我想我可以在循环本身中创建一个动态块大小:

block_size = [8,16,32,64,128,256,512,1024]

 for i in 1:length(block_size)
    size = collect(1:block_size[i]:length(something))
    print(size)
    end
现在我可以为任何n:

size[i]:size[i]+n