【问题标题】:How do I multiply elements using conditional statement?如何使用条件语句将元素相乘?
【发布时间】:2017-03-11 11:03:55
【问题描述】:

我对 R 和一般编程非常陌生,我需要一些帮助。我想创建一个函数,将给定矩阵中的所有偶数乘以 3,例如在这个矩阵中:

X = matrix(1:9,3,3)

我试过这样的替换功能:

Multiply = function(M) {
 x=M*3
 replace(M, M%%2==0, x)
}

wich 给了我一个我不明白的结果。 任何帮助将不胜感激!

【问题讨论】:

  • 使用ifelseMultiply <- function(M){ i1 <- M%%2 == 0; M[i1] <- M[i1]*3; M }
  • 谢谢!这很容易理解。
  • X*(1 + 2*(X %% 2 == 0))?

标签: r function matrix


【解决方案1】:

这适用于您的示例:

mymult <-function(M, num.row, num.col){
    vec = c(M)
    vec[vec %% 2 == 0]=vec[vec%%2 == 0]*3
    return(matrix(vec, num.row, num.col))
}

首先向量化并检查哪些是偶数,然后将它们乘以三并再次重建矩阵。

【讨论】:

  • 谢谢大家的帮助,我已经找到解决办法了!
【解决方案2】:

我们可以将函数创建为

Multiply <- function(M){ i1 <- M%%2 == 0
          M[i1] <- M[i1]*3
          M } 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-16
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多