重複の可能性:
Rでループ操作を高速化する
ループについていくつか質問があります。R はベクトル化された計算でより高速に動作することを知っています。これを利用するために以下のコードを変更したいと思います。フォーラムで他の回答を調べると、sapply 関数は for ループの内側を置き換えることができるようですが、ゼロのベクトルを生成しているため、エラーが発生します。Tao は 1000 のままで、これが問題を引き起こしていると思います。
私の主な関心事は速度です。アルゴリズム全体にループを作成し、さらに分析するために異なる V および n サイズでプロットする必要があるためです。
ご協力いただきありがとうございます
代替ループ
tao = 1000
L = (tao - 1)
n = 10
V = 5
I = 10000
V_s = matrix(rnorm(I), I, 1)
V_b = matrix(rnorm(I), I, 1)
signal <- matrix(0, L, 1)
for( j in (n:L)){
sapply(((j-n+1):j),function (tao) signal[j] = signal[j] + abs(V_s[tao] - V_b[tao]))
signal[j] = (signal[j] / (n * V) )
}
オリジナルループ
tao = 1000
L = (tao - 1)
n = 10
V = 5
I = 10000
V_s = matrix(rnorm(I), I, 1)
V_b = matrix(rnorm(I), I, 1)
signal <- matrix(0, L, 1)
for( j in (n:L)){
for( tao in ((j-n+1):j)) {
signal[j] = (signal[j] + abs(V_s[tao] - V_b[tao]))
}
signal[j] = (signal[j] / (n * V) )
}