我目前有这段代码。
有没有一种方法可以通过将上三角矩阵纳入外部函数来使此代码更快? 请注意,这是一个可重现的示例,但我的代码要复杂得多,并且我需要尽可能地减少运行时间。
s1=seq(0,10,length.out=3)
s2=seq(0,10,length.out=3)
d=outer(s1,s2,`-`)
I=outer(s1,s2,`==`)
然而我只需要 d
的上三角部分,所以目前我正在执行以下操作
d=d[upper.tri(d,diag=T)]
I=I[upper.tri(I,diag=T)]
有没有一种方法可以通过将上三角矩阵纳入外部函数来使此代码更快? 请注意,这是一个可重现的示例,但我的代码要复杂得多,并且我需要尽可能地减少运行时间。
a
和b
是什么? - akruncombn(seq_along(s1), 2, FUN= function(i) s1[i[1]]- s2[i[2]])
。 - akrunc(rbind(rep(0,length(s1)),combn(seq_along(s1), 2, FUN= function(i) s1[i[1]]- s2[i[2]])))
。 - akrun