使用函数返回的元素创建矩阵

时间:2013-05-12 15:24:42

标签: r

我有两个向量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系列函数并完全避免循环?

1 个答案:

答案 0 :(得分:4)

这正是outer函数的作用:

outer(x, y, f)

如果f没有矢量化,则需要:

outer(x, y, Vectorize(f))