gpt4 book ai didi

r - 乘以不同维度的数组

转载 作者:行者123 更新时间:2023-12-01 13:48:31 24 4
gpt4 key购买 nike

我想乘(或除)两个不同维度的数组(a1=[48,38,31] 和 b1[48,38])。到目前为止,我在第三维上使用了 for 循环。但是,我想知道如何使用(如果可能的话)apply。假设我有以下示例:

a1<- array(rnorm(20), dim=c(2,3,3))
b1<- array(rnorm(20), dim=c(2,3))

如果我尝试直接执行 a1/b1(或 *)我不能,因为它们需要具有相同的尺寸。所以我使用了一个 for 循环:

for(i in 1:3){
m1[,,i] <- a1[,,i]/b1
}

但我想避免使用循环。

最佳答案

一个选项是

array(c(a1)/rep(b1, dim(a1)[3]), dim= dim(a1))

或者我们可以使用apply

apply(a1, 3, FUN=function(x) x/b1)

关于r - 乘以不同维度的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33822097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com