2013-10-28 63 views
4

有沒有辦法通過使用指向第一個元素的指針將一個numpy數組傳遞給C++/SWIG?我有一個C++函數,預計會有一個3乘N的矩陣,這個矩陣預計會存儲在列主索引連續內存中。因此,函數調用採用以下參數:如何使用指針將numpy數組傳遞給C++/SWIG而不依賴於numpy.i?

(double *mat3Xin, double *mat3Xout, int numTrip) 

其中numTrip是矩陣的N維(即三元組數)。由於輸入和輸入輸出是相同的大小,我不需要傳入。是否有方法可以在SWIG中輕鬆處理此問題,而無需使用swig的重命名內聯功能並創建一個輔助函數,該函數接受附加參數swig的numpy接口需要矩陣?我目前正在將這些矩陣轉換爲一個輔助函數,然後調用原始函數的重命名版本,但是,現在開始將我現有庫中的所有函數轉換爲此格式變得非常乏味。

感謝,

+0

獲取指針是沒有問題的,但要確保該數組是C-連續第一。 – seberg

+0

'numpy.i'是什麼意思? –

+1

'PyArray_DATA'給你一個指向元素'0,0'的指針。 –

回答