Операции в матрице со значениями (i, j) без циклов for или while - PullRequest
1 голос
/ 17 апреля 2019

Мне нужно написать функцию в R, которая получает в качестве входных данных количество строк (r) и количество столбцов (c), а также генерирует и выводит матрицу V, где V_ (i, j) = r ^ (abs ( ij)) и r = 2. Эта функция не должна иметь ни for, ни while петель.

Я просто не знаю, как получить доступ к каждому (i, j) и вычислить разницу без использования циклов for и while.

До сих пор я пробовал использовать следующий код.

matriz <- function(r,c){
  r <- 2
  V <- matrix(r^(abs(nrow(r)-ncol(c))), nrow =  r, ncol = c)
  return(V)
}

Заранее спасибо.

1 Ответ

3 голосов
/ 17 апреля 2019

Может как то так?

foo <- function(r,c){
    m <- matrix(NA,r,c)
    2 ^ abs(row(m) - col(m))
}

... с очевидными расширениями для разных баз:

foo <- function(i,r,c){
    m <- matrix(NA,r,c)
    i ^ abs(row(m) - col(m))
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...