【问题标题】:Array - vector multiplication in R数组 - R 中的向量乘法
【发布时间】:2013-12-11 22:46:03
【问题描述】:

我需要一个简单的矩阵代数或 Kronicker 乘积类型运算来将 R 中的数组和向量相乘以获得特定结果。假设我有数组:

ar<-array(c(rep(1,9),rep(10,9),rep(100,9)),dim=c(3,3,3))

还有向量c(1,2,3)。将两者乘以 * 会将数组每张幻灯片上的每一行分别乘以 1,2 和 3。但是,我需要一个操作才能到达数组

ar2<-array(c(rep(1,9),rep(20,9),rep(300,9)),dim=c(3,3,3))

相反。也就是说,是否有一个简单的操作可以让我使用上面指定的向量将ar 转换为ar2?谢谢!

【问题讨论】:

  • ar * rep(1:3, each=9) 应该可以工作...
  • 好的,谢谢,我明白了。更一般地说,我们会有rep(c(1,2,3),each=9)。如果您将此添加为解决方案,我会投票给您:)

标签: arrays r vector matrix-multiplication multiplication


【解决方案1】:

ar * rep(1:3, each=9) 应该可以工作...

对于任意大小的数组和任意一组乘数,您知道数组的维度以及要沿其执行元素乘法的轴(在本例中为 z 轴):

each_arg <- prod(dim(ar)[1:2])
multipliers <- sample(1:10, 3)
ar2 <- ar * rep(multipliers, each=each_arg)

你也可以看看tensorA

【讨论】:

    猜你喜欢
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 2020-01-17
    • 1970-01-01
    • 2016-08-12
    • 1970-01-01
    • 2020-03-16
    相关资源
    最近更新 更多