首页 > 解决方案 > 用于将矩阵中的所有奇数值相乘的自定义函数

问题描述

我正在尝试在 R 中编写一个函数,该函数接受一个参数(矩阵)并将其中的所有奇数值乘以 0.618。

这是我到目前为止所得到的,但这是我第一次使用 R 矩阵并且不知道如何替换 for 循环中的值,或者在乘以数字后是否更好。

标签: rfor-loopmatrix

解决方案


你可以试试下面的代码

mat <- matrix(1:12, 3, 4)
mat2 <- mat * 0.618^(mat %% 2)

在哪里

  • %%检查模数超过 2
> mat %% 2
     [,1] [,2] [,3] [,4]
[1,]    1    0    1    0
[2,]    0    1    0    1
[3,]    1    0    1    0
  • 0.618^(...)给出系数
> 0.618^(mat %% 2)
      [,1]  [,2]  [,3]  [,4]
[1,] 0.618 1.000 0.618 1.000
[2,] 1.000 0.618 1.000 0.618
[3,] 0.618 1.000 0.618 1.000

推荐阅读