1

我有两个带有一些值的向量 x 和 y,我需要生成矩阵,这些元素将由应用于这两个向量的函数 f(x,y) 返回。即矩阵 M 将有一个典型元素

M[i,j] <- f(x[i], y[j])

如果我想避免循环,最有效的方法是什么?我可以使用 sapply 函数生成矩阵列或行,即

M[i, ] <- sapply(y, f, x = x[i])

但是我仍然需要在非常慢的其他维度上应用循环,因为 x 的维度很大。是否可以使用 apply 系列函数并完全避免循环?

4

1 回答 1

5

这正是该outer函数的作用:

outer(x, y, f)

如果f未矢量化,则需要:

outer(x, y, Vectorize(f))
于 2013-05-12T15:31:05.460 回答