Несколько массивов с SWIG - PullRequest
       18

Несколько массивов с SWIG

4 голосов
/ 20 апреля 2010

Я использую SWIG для передачи пустых массивов из Python в код C ++:

%include "numpy.i"
%init %{
import_array();
%}

%apply (float* INPLACE_ARRAY1, int DIM1) {(float* data, int n)};

class Class 
{
  public: 
  void test(float* data, int n)
  {
    //...
  }
};

и в Python:

c = Class()
a = zeros(5)
c.test(a)

Это работает, но как я могу передать несколько массивов numpy одной и той же функции?

1 Ответ

9 голосов
/ 21 апреля 2010

Я узнал ответ от моего коллеги:

%apply (float* INPLACE_ARRAY1, int DIM1) {(float* data1, int n1), (float* data2, int n2)};

class Class 
{
  public: 
  void test(float* data1, int n1, float* data2, int n2)
  {
    //...
  }
};

Теперь два пустых массива передаются в Class :: test.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...