[python-win32] How to handle arguments of "Pointer SafeArray Real 8 (Flags=3)"
Sun, 23 Mar 2003 23:58:30 -0800 (PST)
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.
# 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 <email@example.com> wrote:
> 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
> 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.
> Best regards,
> Python-win32 mailing list