【问题标题】:Operations in a matrix with its (i,j) values with no for or while loops具有 (i,j) 值的矩阵中的操作,没有 for 或 while 循环
【发布时间】:2019-04-18 03:35:37
【问题描述】:

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

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

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

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

提前致谢。

【问题讨论】:

  • 每次运行此函数时,您都将 r 的每个值替换为 2
  • @nsinghs 我知道。这就是我要问的原因,这就是我一直在尝试运行的代码。
  • r 总是 2 吗?
  • @nsinghs 是的,r 的值是恒定的,等于 2。唯一的变化是指数,其中每个 V_(i,j) 的值应该是 r^(abs(i-j) )

标签: r matrix


【解决方案1】:

也许是这样的?

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

【讨论】:

  • 很好:) 好答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多