我有一些C代码具有以下声明:
int myfunc(int m, int n, const double **a, double **b, double *c);
Run Code Online (Sandbox Code Playgroud)
所以a是一个恒定的二维数组,b是一个二维数组,并且c是一维数组,都是动态分配的. b并且c在传递之前不需要任何具体的东西myfunc,应该被理解为输出信息.出于这个问题的目的,我不允许更改声明myfunc.
问题1:如何将给定的numpy数组a_np转换为a具有此C函数所需格式的数组,以便我可以在Cython中调用此C函数a?
问题2:是的声明b和c下方正确的,或者他们需要在其他格式的C函数将其理解为一个二维和一维数组(分别)?
我的尝试:
myfile.pxd
cdef extern from "myfile.h":
int myfunc(int p, int q, const double **a, double **b, double *c)
Run Code Online (Sandbox Code Playgroud)
mytest.pyx
cimport cython
cimport myfile
import numpy as np
cimport numpy as np
p = 3
q = 4 …Run Code Online (Sandbox Code Playgroud)