当我运行R命令时:
outer(37:42, 37:42, complex, 1)
我收到错误
“昏暗中的错误(robj)< - c(dX,dY):dims [product 36]与对象的长度不匹配[37]”
在我的R会话中。但是当我跑步时
outer(36:42, 36:42, complex, 1)
结果我有一个有效的矩阵。对于大于36的所有值,问题仍然存在。并且对于低于37的所有值都没有问题。
这是一个错误吗?
我的系统:Microsoft R Open 3.4.4 / RStudio 1.1.447 / Ubuntu 16.04
答案 0 :(得分:0)
更具体地说,当运行带参数m:n
,m:n
的函数时,只要n < (n - m + 1)^2
[citation needed] ,它就会返回错误。试着举例outer(20:23, 20:23, complex, 1)
和outer(20:24, 20:24, complex, 1)
,其中第一个会失败,但后者会赢,因为24 < (24-20+1)^2
。我怀疑这与complex
为length.out
的第一个参数有关,它定义了要返回的向量的length
- 我知道这不是解释。因此,您的第一个参数37:42
将传递给length.out
参数。这没有多大意义,所以如果我错了请纠正我,但我认为你想做的是以下几点:
outer(37:42, 37:42, function(x,y) {complex(1, real = x, imaginary = y)})
哪个输出:
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 37+37i 37+38i 37+39i 37+40i 37+41i 37+42i
[2,] 38+37i 38+38i 38+39i 38+40i 38+41i 38+42i
[3,] 39+37i 39+38i 39+39i 39+40i 39+41i 39+42i
[4,] 40+37i 40+38i 40+39i 40+40i 40+41i 40+42i
[5,] 41+37i 41+38i 41+39i 41+40i 41+41i 41+42i
[6,] 42+37i 42+38i 42+39i 42+40i 42+41i 42+42i
希望这有帮助。
答案 1 :(得分:0)
问题在于第四个论点:它应该命名为:
外(37:42,37:42,复杂,length.out = 1)
工作正常!