我需要将此for循环转换为R
for ii = 100:(size(start,1)-N)
if start(ii) == 1 && mean(start(ii-11:ii-1)) == 0
count = count + 1;
sif(count,:) = s(ii:ii+N-1);
time(count) = ii*1/FS;
end
end
起始向量是真假值的单维向量,总共约 300 万个元素。
由于R中的循环需要很长时间,执行代码大约需要3个小时,因此需要对其进行向量化。
如果有人可以提供帮助,我将非常感激。
编辑
这是我的 R 代码,只有一个简单的计数(需要数小时才能执行)
for(ii in 100:sp)
{
if(start(ii) == 1 && mean(start(ii-11:ii-1)) == 0)
{
count = count + 1
}
}
编辑-2
以下是虚拟值:
start
:
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
[13] TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
N
:
[1] 882
FS
:
[1] 44100
s
:
[1] 1.762390e-01 1.797791e-01 1.826172e-01 1.795044e-01 1.724243e-01
[6] 1.665039e-01 1.640625e-01 1.634827e-01 1.628723e-01 1.606750e-01