函数,它获取两个向量并返回R中的矩阵z=f(x,y)

函数,它获取两个向量并返回R中的矩阵z=f(x,y),r,function,matrix,R,Function,Matrix,我试图定义一个标量函数a和b,其中a和b是向量,因此我可以使用persp(a,b,z)绘制z=f(X,y)的曲面图 问题是,当我需要一个矩阵时,我的函数的返回值是一个与向量a长度相同的向量 有关职能是: logver <- function(a, b, PARAM) { l <- (1 / (1 + exp(-a - b * PARAM))) return(l) } logver试试这个 logover <- function(a, b, PARAM){ L

我试图定义一个标量函数
a
b
,其中
a
b
是向量,因此我可以使用
persp(a,b,z)
绘制
z=f(X,y)
的曲面图

问题是,当我需要一个矩阵时,我的函数的返回值是一个与向量a长度相同的向量

有关职能是:

logver <- function(a, b, PARAM) {
  l <- (1 / (1 + exp(-a - b * PARAM)))
  return(l)
}
logver试试这个

logover <- function(a, b, PARAM){
    L <- (1 / (1 + exp(-a-b*PARAM)))
    return(L)
}

logover如果您想要
a
b
的所有可能组合,请使用
outer

logver <- function(a, b, PARAM)
{
    o <- outer(a, b*PARAM, `+`)
    1/(1 + exp(-o))
}

logver返回(l)部分位于另一行,带有缩进,由于某种原因,当我复制并粘贴到这里时,它一直被忽略。PARAM是一个正则数,比如说2。a和b是使用seq(-10,10,by=0.01)生成的,问题是,我希望得到a和b的每个值的值;一个矩阵,当我得到一个向量(长度为2001)时。当你使用seq(-10,10,by=0.01)时,它返回两个值,因此返回2001个值。您需要决定可以跳过左侧或右侧的哪个值。您可以将其更改为seq(-9.99,10,by=0.01)或seq(-10,9.99,by=0.01)。这将只给出2000个值。问题不是函数作为参数的向量,问题是我得到一个向量作为输出值,而我想要一个矩阵,你可以尝试返回(矩阵(L,1000,2))来获得矩阵形式。或者您可以显示您期望的示例输出。