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

86
9

Я использую SWIG для передачи массивов numpy из кода Python в С++:


%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 в одну и ту же функцию?

спросил(а) 2010-04-20T12:48:00+04:00 10 лет, 2 месяца назад
1
Решение
118

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


%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)
{
//...
}
};

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

ответил(а) 2010-04-21T00:32:00+04:00 10 лет, 2 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема