Более конкретно, при запуске функции с аргументами m:n
, m:n
она возвращает ошибку всякий раз, когда n < (n - m + 1)^2
[требуется цитата] .Попробуйте, например, 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
Надеюсь, это поможет.