首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Fortran中,什么等同于Python的itertools.product?

在Fortran中,什么等同于Python的itertools.product?
EN

Stack Overflow用户
提问于 2017-07-30 01:08:12
回答 1查看 213关注 0票数 0

下面的Python代码根据值01生成大小为ndim的所有不同向量

代码语言:javascript
复制
import itertools

ndim = 8
A = list(itertools.product([0,1], repeat=ndim))
print (A)

在Fortran中有可能做同样的事情吗?那么在Fortran中什么是intertools.product的等价物呢?

EN

回答 1

Stack Overflow用户

发布于 2017-07-30 03:04:08

是的,在Fortran中也可以做到这一点,尽管有些人可能认为这有点麻烦。什么等同于itertools.product?我没有一个像itertools.product那样的史酷比。但是这个小函数似乎能做你想做的事……

代码语言:javascript
复制
  FUNCTION bit_vectors(ndim) RESULT(bv)
    INTEGER, INTENT(in) :: ndim
    INTEGER, DIMENSION(0:2**ndim-1,ndim) :: bv
    INTEGER :: jx
    INTEGER, DIMENSION(0:ndim-1) :: bits
    bits = [(jx,jx=0,ndim-1)]
    DO jx = 0, 2**ndim-1
       bv(jx,:) = MERGE(1,0,BTEST(jx,bits))
    END DO
  END FUNCTION bit_vectors

我想你可以将这种方法推广到更广泛的目的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45391894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档