[python-win32] How to handle arguments of "Pointer SafeArray Real 8 (Flags=3)"

Jingzhao Ou ouj@usc.edu
Sun, 23 Mar 2003 23:58:30 -0800 (PST)

Dear all,

I just checked using google. It seems that Perl guys have some good solutions
to this problem. I really would like to solve this problem using Python. 


Best regards,

# First create two SAFE_ARRAYs (Can only pass SAFE_ARRAY?)
my $MReal = Variant(VT_ARRAY|VT_R8, [1,2], 2);
my $MImag = Variant(VT_ARRAY|VT_R8, [1,2], 2);

# Set the values

# Put the matrix into MATLAB
$ML->PutFullMatrix('B', 'base', $MReal, $MImag);

# GetFullMatrix is similar but requires unpacking the data
# from MATLAB into the Variant array.  The data is passed
# from MATLAB by reference.

# Make real and complex arrays for the data.
my $M2Real = Variant(VT_ARRAY|VT_R8|VT_BYREF, [1,2], 2);
my $M2Imag = Variant(VT_ARRAY|VT_R8|VT_BYREF, [1,2], 2);

# Retrieve the data from MATLAB
$ML->GetFullMatrix('B', 'base', $M2Real, $M2Imag);


--- Jingzhao Ou <jasonou@yahoo.com> wrote:
> Hi, 
> I tried to use MATLAB from python through the MATLAB COM server. I use
> the following code to invoke the COM server:
> App = win32com.client.dynamic.Dispatch('Matlab.Application')
> Then, after that, I can execute MATLAB commands using 
> App.Execute(command)
> However, I encountered problem when I tried to import/export data from/to
> MATLAB using the GetFullMatrix and PutFullMatrix functions. I check the input
> to these two functions. They require arguments of "Pointer SafeArray Real 8
> (Flags=3)" type. I tried to use list or tuple data type in python to handle
> them  but failed. 
> Can anyone help me out by telling how I can solve this problem in python?
> Should I write some C code to solve it? 
> BTW, VB can handle this data type. 
> Thanks!
> Best regards,
> Jingzhao
> _______________________________________________
> Python-win32 mailing list
> Python-win32@python.org
> http://mail.python.org/mailman/listinfo/python-win32