如何将函数应用于矩阵数组并获得相同形式的输出(矩阵数组)

弗雷德里克·乌梅

这是我想要的一个简单的例子:

x <- stats::rWishart(10, 3, matrix(c(4,1,1,3), nrow = 2))
apply(x, 3, function(m) {return(m + matrix(c(1,2,3,4), nrow=2))})

显然,人们希望它的输出是一个 2x2x10 的数组(与输入相同)。然而,由于一些模糊的原因,R 自动将矩阵输出转换为向量,因此上面的代码实际上返回一个 4x10 矩阵(而不是一个 2x2x10 数组)。

我该如何解决 ?

晚邮

从 R 4.10 开始,有一个simplify=要应用参数,您可以使用它返回一个列表,该列表可以通过以下方式简化回数组simplify2array

out <- simplify2array(
  apply(x, 3, function(m) {return(m + matrix(c(1,2,3,4), nrow=2))},
        simplify=FALSE))

dim(out)
#[1]  2  2 10

或者您可以替换/覆盖现有数据:

覆盖原始对象:

x[] <- apply(x, 3, function(m) {return(m + matrix(c(1,2,3,4), nrow=2))})

替换原对象的内容并返回一个新对象:

replace(x, , apply(x, 3, function(m) {return(m + matrix(c(1,2,3,4), nrow=2))}))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将函数(矩阵->标量)应用于3使python中的numpy数组变暗

将hstack应用于矩阵数组

如何将函数应用于包含 matlab 中的 3D 矩阵的单元格数组中的每个单元格?

如何将函数应用于数组的索引?

如何将矩阵变换有效地应用于NumPy数组的每一行?

我如何将自己的函数应用于矩阵?

将 scipy.linalg.eigh 等矩阵函数应用于高维数组

如何将其应用于R中3维数组中的每个矩阵

如何将函数应用于矩阵中的所有向量对

在python sympy中,如何将外部python函数应用于sympy矩阵的每个元素?

如何将函数数组应用于Javascript中相应参数的数组?

如何将函数应用于数组并形成两个单独的数组?

如何将相同的函数应用于字典数组中的每个值?

如何将numpy.argpartition的输出应用于二维数组?

将函数应用于多个向量并将成对比较输出到矩阵

如何将函数应用于数组中的所有元素(在C ++模板类中)

如何将函数应用于json数组的每个元素?

如何将向量化函数应用于numpy数组的上一个元素?

Pandas:如何将接受数组的函数应用于列?

numpy:如何将函数应用于数组的每一行

如何将映射函数应用于Kotlin中的数组并更改其值?

如何将多变量函数应用于100x100数组?

如何将0元匿名函数应用于数组

在Julia中,如何将函数应用于具有数组的数据框?

如何将 EventListener 应用于数组的每个元素?

如何将 $lt 应用于数组元素?

如何将distinct()应用于对象RxJS数组?

如何将数组应用于视图

将函数应用于元组数组