Numpy 返回一个已知大小的向量而不使用额外的包装器?

Numpy 返回一个已知大小的向量而不使用额外的包装器?,numpy,swig,Numpy,Swig,我只是被SWIG和numpy的一个小问题困住了。 我在C中有一个专门的矩阵(n,k)向量(k)积,我想与numpy接口。所以在乘法之前,我总是知道输出向量(n)的形状 目前,C函数分配内存并向计算出的乘积返回double*。防止内存泄漏,避免更改C代码 我的界面如下所示: 这很不方便。有没有办法告诉swig内部的大小?或者是提供用户友好界面的唯一方法,以便在其周围添加额外的包装,如: def user_interface_mat_vec_mul(A,b): mat_vec_mul(A,b

我只是被SWIG和numpy的一个小问题困住了。 我在C中有一个专门的矩阵(n,k)向量(k)积,我想与numpy接口。所以在乘法之前,我总是知道输出向量(n)的形状

目前,C函数分配内存并向计算出的乘积返回double*。防止内存泄漏,避免更改C代码 我的界面如下所示:

这很不方便。有没有办法告诉swig内部的大小?或者是提供用户友好界面的唯一方法,以便在其周围添加额外的包装,如:

def user_interface_mat_vec_mul(A,b):
    mat_vec_mul(A,b,A.shape[0])

提前感谢。

这是我的答案,我找到了一种将包装器函数放入swig文件的方法,它基本上实现了我想要的功能:

%pythoncode %{
def mat_vec_mul(A, b):
    return _test._mat_vec_mul(A, b, A.shape[0])
%}
def user_interface_mat_vec_mul(A,b):
    mat_vec_mul(A,b,A.shape[0])
%pythoncode %{
def mat_vec_mul(A, b):
    return _test._mat_vec_mul(A, b, A.shape[0])
%}