gpt4 book ai didi

python - Fortran:灵活的数组过滤

转载 作者:行者123 更新时间:2023-12-01 06:04:30 24 4
gpt4 key购买 nike

Fortran 中,我们编码如下:

!vectors w,q are of the same size...w = ...         !a vector of integers [0,...,n)if (allocated(t)) deallocate(t);allocate(t(count(w/=0)))t = pack(q, w/=0)m = count(t>0)if (allocated(b)) deallocate(b)allocate(b(m))b = pack(t,t>0)

要翻译Python中的代码:

t = q[w!=0]b = t[t>0]

不确定我们所做的 Fortran 实现是否正确。请注意,它是一个非常大的程序的一部分,我们遇到了一些恼人的运行时错误,有时甚至没有消息但崩溃......

最佳答案

在 F2003 中,将 t 和 b 声明为可分配向量并简单地编写:

t = pack(q, w/=0)
b = pack(t,t>0)

这已经得到多个编译器的支持,例如 ifort 的 gfortran (GCC 4.6)(Intel 编译器套件 > 11.x)

关于python - Fortran:灵活的数组过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8830124/

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