有没有办法通过只使用指向第一个元素的指针来将numpy数组传递给C++/SWIG?我有一个C++函数,它预期接受一个3xN矩阵,该矩阵应存储在按列主索引的连续内存中。因此,函数调用需要使用以下参数:
( double *mat3Xin, double *mat3Xout, int numTrip)
其中numTrip是矩阵的N维(即三元组的数量)。由于输入和输出是相同大小的,因此不需要传入该参数。在不使用swig的重命名内联功能和创建带有额外参数的helper函数的情况下,有没有一种简单的方法在SWIG中轻松处理这个问题,以满足swig的numpy接口对矩阵的要求?我目前正在一个helper函数中展开矩阵,然后调用原始函数的重命名版本,但是,将所有现有库中的函数都转换为这种形式开始变得乏味。
谢谢,
PyArray_DATA
会给你一个指向元素0,0
的指针。 - Fred Foo