2009-12-20 5 views
6

Estoy buscando una manera simple de visualizar algunos de mis datos en numpy, y descubrí el paquete mlabwrap que parece muy prometedor. Intento crear una trama simple con la capacidad de actualizarse a medida que cambian los datos.numpy to matlab interfaz con mlabwrap

Aquí está el código de MATLAB que estoy tratando de duplicar

>> h = plot([1,2,3], [1,2,3], '-o'); 
>> set(h, 'XData', [0,0,0]); 
>> drawnow(); 

a Python

>> from mlabwrap import mlab 
>> h = mlab.plot([1,2,3], [1,2,3], '-o') 
>> mlab.set(h, 'XData', [0,0,0]) 
>> mlab.drawnow(); 

Sin embargo, el segundo al último comando falla con un mensaje de error

error: One or more output arguments not assigned during call to "set". 

Alguna sugerencia en como arreglar esto?

Respuesta

6

Tal Mlab es loco que no está ahorrando valor de retorno de MATLAB para ese conjunto() llamar ...

no lo tiene instalado, lo que da someval = mlab.set(h,'XData')?

edit: también se podría tratar de usar Nout ... mlab.set(h,'XData',[0,0,0],nout=0)

+0

Gracias, me has apostado a la respuesta por unos minutos. Por defecto, 'mlabwrap' traduce el comando python a' [RES0 __] = set (arg0__, arg1__, arg2 __); 'y como set no toma argumentos ouptut, esto produce el error anterior. – dzhelil

5

Desde set no tiene argumentos de salida, tenemos que decir que no hay mlabwrap argumentos de salida se debe dar a la misma para evitar el mensaje de error anterior.

mlab.set(h, 'XData', [0,0,0], nout=0)