如何使用指针将numpy数组传递给C++/SWIG,而不依赖于numpy.i?

5
有没有办法通过只使用指向第一个元素的指针来将numpy数组传递给C++/SWIG?我有一个C++函数,它预期接受一个3xN矩阵,该矩阵应存储在按列主索引的连续内存中。因此,函数调用需要使用以下参数:
( double *mat3Xin, double *mat3Xout, int numTrip)

其中numTrip是矩阵的N维(即三元组的数量)。由于输入和输出是相同大小的,因此不需要传入该参数。在不使用swig的重命名内联功能和创建带有额外参数的helper函数的情况下,有没有一种简单的方法在SWIG中轻松处理这个问题,以满足swig的numpy接口对矩阵的要求?我目前正在一个helper函数中展开矩阵,然后调用原始函数的重命名版本,但是,将所有现有库中的函数都转换为这种形式开始变得乏味。

谢谢,


获取指针不是问题,但首先确保数组是C连续的。 - seberg
“numpy.i” 是什么意思? - Benjamin Bannier
1
PyArray_DATA 会给你一个指向元素 0,0 的指针。 - Fred Foo
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接