From: Josh M. <jos...@gm...> - 2006-11-09 04:19:22
|
Hi David, Sorry for the late reply. Can you CC any reply to me as well, as I just get the digests and read them every few days. On 08/11/2006, at 11:09 PM, David Cournapeau wrote: > I didn't know that, thanks. Unfortunately, it is not really what I am > trying to do: mlabwrap is just a python interface a bit more high > level > than pymat, with many fancy tricks, but still do copies. What I would > like is to avoid completely the copying by using proxy classes around > data from numpy so that I can pass "automatically" numpy arrays to > matlab C api, and a proxy class around data from matlab so that they > look like numpy arrays. I don't see how you are going to get around doing the copies. Matlab is in a separate process from the Python interpreter, and there is no shared memory. In what way do you want these proxy classes to "look like numpy arrays"? Note that mlabwrap creates proxy arrays, and only copies the data if you actually request it to. (AFAIRemember) Otherwise you aren't losing any speed, because there aren't going to be any copies. > I don't care that much about the actual api from python point of > view, because I intend to use this mainly to compare matlab vs numpy > implementation, not as a way to use matlab inside python regularly. > And > once the copy problem is solved, adding syntactic sugar using > python is > easy anyway, I think (it should be easy to do something similar to > mlabwrap at that point), What could be possible to do is add an array interface to the mlabwrap proxy classes so they can be used as numpy arrays when required for passing to numpy functions (or PIL, etc). Thus we only copy when we want to use numpy functions. Then we could define the operators on the proxy class to perform their operations on the other side of the bridge. Cheers, Josh |