Как вычислить значение целевой функции из матрицы? - PullRequest
0 голосов
/ 21 июня 2020

Предположим, что у нас есть следующая функция била:

custom_fun <- function(x, y) {            # Create custom function in R
  z <- (1.5 - x + x*y)^2+(2.25 - x + x*y^2)^2+(2.625 - x + x*y^3)^2
  return(z)
}

и у нас есть этот список позиций в матрице m:

[1] "list of respective positions"
        [,1]       [,2]      [,3]
x:  2.482116 -0.7845145 -3.370810
y: -1.031615  1.2035550  1.203555

Как я могу вычислить custom_fun(x,y) в каждом столбце элегантно? Я хочу сохранить эти значения в последней строке матрицы m.

Спасибо за помощь!

1 Ответ

0 голосов
/ 21 июня 2020

Вы можете использовать apply:

custom_fun <- function(x, y) {            # Create custom function in R
  z <- (1.5 - x + x*y)^2+(2.25 - x + x*y^2)^2+(2.625 - x + x*y^3)^2
  return(z)
}

my_mat <- matrix(rnorm(10), nrow = 2, dimnames = list(c("x", "y"), NULL))

my_mat
#>        [,1]       [,2]       [,3]      [,4]        [,5]
#> x 0.5631441  0.9349816 -1.0088734 -1.364570 -1.32633896
#> y 0.4978350 -1.3265677  0.4206566 -2.532265 -0.01913554

rbind(my_mat, `fun(x, y)` = apply(my_mat, 2, function(x) custom_fun(x[1], x[2])))
#>                [,1]       [,2]       [,3]       [,4]        [,5]
#> x         0.5631441  0.9349816 -1.0088734  -1.364570 -1.32633896
#> y         0.4978350 -1.3265677  0.4206566  -2.532265 -0.01913554
#> fun(x, y) 9.3600306  9.4626106 26.4985306 749.993103 36.53218207

Создано 21.06.2020 с помощью пакета реплекс (v0.3.0)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...