Lo sé, a menudo hay muchas maneras de resolver ciertos problemas. Pero aquí yo sé qué camino quiero tener, pero no soy capaz de hacer que funcione con Python y el TRAGO ...Swig, devolviendo una matriz de dobles
Tengo un C-función, lo que me devuelve una matriz de valores dobles:
double *my(int x)
{
double a,b,*buf;
buf = malloc (x * sizeof(double));
a=3.14;
b=2.7;
buf[0]=a;
buf[1]=b;
return buf;
}
Aquí, definitivamente quiero tener la matriz como un valor de retorno. No, como en muchos ejemplos, una función 'nula', que escribe en una matriz de entrada. Ahora, me gustaría obtener un envoltorio TRAGO-pitón, que podría ser utilizado como:
>>> import example
>>> print example.my(7)
[3.14,2.7]
todo lo que hago, tengo algunos problemas conceptuales aquí - Siempre me s.th. como <Swig Object of type 'double *' at 0xFABCABA12>
traté de definir algunos typemaps en mi archivo SWG:
%typemap(out) double [ANY] {
int i;
$result = PyList_New($1_dim0);
for (i = 0; i < $1_dim0; i++) {
PyObject *o = PyFloat_FromDouble((double) $1[i]);
PyList_SetItem($result,i,o);
}
}
Pero todavía soy incapaz de salir mis resultados según sea necesario. ¿Alguien tiene un ejemplo de código simple para lograr esta tarea?
ups, sí, este es un subconjunto súper pequeño del código real que tengo enfrente de mí. Perdón por la confusion. – user701370