标准 R 表达式outer(X, Y, f)
求值为第 (i, j) 项值为 的矩阵f(X[i], Y[j])
。
我想实现函数:multi.outer
的 n 维泛化,其中 f 是一些 n 元函数,将产生一个 (length(X_1) * ... * length(X_n)) 数组,其 (i_1,.. .,i_n)-th 条目具有所有有效索引集 (i_1,...,i_n) 的值。显然,对于 {1, ..., n} 中的每个 i,in 的所有元素都必须是函数的第 i 个参数。对于 n=2 的情况,将做与 相同的事情,尽管它会有不同的签名(IOW,将等同于)。outer
multi.outer(f, X_1, ..., X_n)
f(X_1[i_1], ..., X_n[i_n])
X_i
multi.outer(f, X_1,...,X_i,..., X_n)
f
multi.outer
outer
multi.outer(f, X, Y)
outer(X, Y, f)
需要注意的是,虽然参数 X_1, ..., X_nmulti.outer
都是向量,但它们不一定都具有相同的模式。例如 X_1 和 X_2 可以分别是c(1, 2, 3)
和LETTERS[10:20]
。
谢谢!