gpt4 book ai didi

python - 如何使用f2py(传递参数)?

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

我有以下 fortran 代码:

      SUBROUTINE MMUL(A,B,D,n)
C
INTEGER :: n
REAL, DIMENSION (n, n) :: A, B, D
C
CF2PY INTENT(IN) :: A
CF2PY INTENT(IN) :: B
CF2PY INTENT(IN) :: n
CF2PY INTENT(OUT) :: D

D = MATMUL(A, B)

END

它说这段代码接受两个一维数组(即向量)并返回这些向量之间的点积。我需要将它包装到我的 python 脚本中。我这样使用:

f2py.compile(fsqrtmatmul.encode(), modulename='fsqrtmatmul', verbose=0)
import fsqrtmatmul
res = fsqrtmatmul.mmul([[1., 2.0]], [[2., 1.]])

但它不起作用:

fsqrtmatmul.error: failed in converting 2nd argument `b' of fsqrtmatmul.mmul to C/Fortran array

如何解决?

最佳答案

你的描述是错误的。

AB 是数组 n x n,它清楚地计算了它们的矩阵乘积。

> f2py -c mmul.f -m mmul


> ipython


In [1]: import mmul

In [2]: D = mmul.mmul([[2.,0.],[0.,2.]],[[3.,0.],[0.,3.]],2)

In [3]: D
Out[3]:
array([[ 6., 0.],
[ 0., 6.]], dtype=float32)

关于python - 如何使用f2py(传递参数)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27002887/

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