【发布时间】:2013-05-12 15:24:42
【问题描述】:
我有两个带有一些值的向量 x 和 y,我需要生成矩阵,这些元素将由应用于这 2 个向量的函数 f(x,y) 返回。也就是说矩阵M会有一个典型元素
M[i,j] <- f(x[i], y[j])
如果我想避免循环,最有效的方法是什么?我可以使用 sapply 函数生成矩阵列或行,即
M[i, ] <- sapply(y, f, x = x[i])
但是我仍然需要在非常慢的其他维度上应用循环,因为 x 的维度很大。是否可以使用 apply 系列函数并完全避免循环?
【问题讨论】:
-
f可以矢量化吗? -
如果
f被矢量化outer(x,y,"f"),否则outer(x,y,FUN=Vectorize(f))。
标签: r