gpt4 book ai didi

arrays - Fortran 90/95 中的广播数组乘法

转载 作者:行者123 更新时间:2023-12-02 15:36:43 28 4
gpt4 key购买 nike

我想知道是否有更好(简洁)的方法在 Fortran 中进行编码?我试图将 a(3, 3) 的每一列乘以 b(3) 中的每个值。我知道Python中有np.multiply,但不确定Fortran。

!!! test.f90
program test
implicit none
integer, parameter :: dp=kind(0.d0)
real(dp) :: a(3, 3)=reshape([1, 2, 3, 4, 5, 6, 7, 8, 9], [3, 3]),&
b(3)=[1, 2, 3]
integer :: i
do i = 1, 3
a(:, i) = a(:, i) * b(i)
end do
write(*, *) a
end program test

提前致谢!

最佳答案

表达式

a * SPREAD(b,1,3)

将产生与循环相同的结果。我将让您和其他人来判断这是否比循环更简洁或更好。

关于arrays - Fortran 90/95 中的广播数组乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27969158/

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