R 动态维数组乘法

R 动态维数组乘法,r,R,我所处的情况是,我需要乘以没有已知数组数和数组维数的数组。例如: demo1 = c(0.45, 0.55) demo2 = c(0.1, 0.1, 0.15, 0.15, 0.2, 0.05, 0.15, 0.1) myarr <- array(1:n, dim = c(length(demo1), length(demo2))) for (p in 1:length(demo1)){ for (q in 1:length(demo2)){ myarr[p,q

我所处的情况是,我需要乘以没有已知数组数和数组维数的数组。例如:

demo1 = c(0.45, 0.55)
demo2 = c(0.1, 0.1, 0.15, 0.15, 0.2, 0.05, 0.15, 0.1)

myarr <- array(1:n, dim = c(length(demo1), length(demo2)))

for (p in 1:length(demo1)){
    for (q in 1:length(demo2)){
        myarr[p,q] <- demo1[p]*demo2[q]
    }
}
demo1=c(0.45,0.55)
demo2=c(0.1,0.1,0.15,0.15,0.2,0.05,0.15,0.1)

myarr查看
?外部
或缩写形式的
%o%
以乘以向量:

myarr <- demo1 %o% demo2 %o% demo3 # %o%...

查看
?外部
或缩写
%o%
以乘以向量:

myarr <- demo1 %o% demo2 %o% demo3 # %o%...

谢谢David纠正了打字错误。你知道
demo1
demo2
时,我真的不明白。但只要
demo1
demo2
没有增长太大,就可以对当前
demo1
demo2
重复计算。您可能想看看:
demo1%o%demo2
,它利用了R的矢量化,比
循环快得多(也短得多)。感谢潘的回复。演示次数不能超过2次。可以有demo3,demo4等等..那么结果应该是什么样的呢?演示1*demo2*demo3*。。。?还是一个n维数组?myarr感谢David纠正了打字错误。我真的不明白你什么时候知道
demo1
demo2
。但只要
demo1
demo2
没有增长太大,就可以对当前
demo1
demo2
重复计算。您可能想看看:
demo1%o%demo2
,它利用了R的矢量化,比
循环快得多(也短得多)。感谢潘的回复。演示次数不能超过2次。可以有demo3,demo4等等..那么结果应该是什么样的呢?演示1*demo2*demo3*。。。?或者一个n维数组?myarr作为矢量化的附加信息:这是一篇关于它的信息性文章,其中有很多其他参考:作为矢量化的附加信息:这是一篇关于它的信息性文章,其中有很多其他参考:
demo1 <- runif(1000)
demo2 <- runif(1000)
system.time({
  myarr <- array(1:n, dim = c(length(demo1), length(demo2)))

  for (p in 1:length(demo1)){
    for (q in 1:length(demo2)){
        myarr[p,q] <- demo1[p]*demo2[q]
    }
  }
})
#round about 6.8s on my system
system.time(demo1 %o% demo2)
#round about 0.01s on my system