具有(i,j)值且无for或while循环的矩阵中的运算

时间:2019-04-17 19:22:27

标签: r matrix

我需要在R中编写一个函数,该函数接收行数(r)和列数(c)作为输入,并生成和输出矩阵V,其中V_(i,j)= r ^(abs( ij)),并且r =2。此函数不得具有forwhile循环。

我只是不知道如何在不使用for和while循环的情况下访问每个(i,j)并计算差值。

到目前为止,我已经尝试使用以下代码。

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

谢谢。

1 个答案:

答案 0 :(得分:3)

也许是这样吗?

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))
}