如何将两个不同等级的数组乘以元素?例如,以元素方式将矩阵的每一行与向量相乘。
real :: a(m,n), b(n)
我最初的想法是使用spread(b,...)
,但我的理解是这会在内存中平铺b
,这会使大型数组不受欢迎。
在MATLAB中,我会使用bsxfun
。
答案 0 :(得分:2)
如果表达式的结果只是被分配给另一个变量(而不是作为更复杂的表达式中的中间体或被用作实际参数),那么循环(DO [CONCURRENT])或FORALL赋值很可能从执行速度的角度来看是最好的(虽然它将取决于处理器)。