Passing numpy arrays to matlab

David Cournapeau david at
Wed Nov 8 08:43:04 CST 2006

Andrew Straw wrote:
> David Cournapeau wrote:
>>     - To send data from the calling process to matlab, you first have to 
>> create a mxArray, which is the basic matlab handler of a matlab array, 
>> and populating it. Using mxArray is very ackward : you cannot create 
>> mxArray from existing data, you have to copy data to them, etc... 
> My understanding, never having done it, but from reading the docs, is
> that you can create a "hybrid array" where you manage the memory. Thus,
> you can create an mxArray from existing data. However, the docs
> basically say that this is too hard for most mortals (and they may well
> be right -- too painful for me, anyway)!
Ok, I have looked at it. It is not hard, it is just totally brain 
damaged: there is no way to destroy a mxArray without destroying the 
data it is holding, even after a call with mxSetPr. So the data 
referenced by the pointer given to mxSetPr is always destroyed by 
mxDestroyArray; I don't see any way to use this to avoid copy... They 
could at least have given a function which frees the data buffer and one 
which destroys the other stuff; as it is, it is totally useless, unless 
you don't mind memory leaks.


Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo

More information about the Numpy-discussion mailing list