Use MATLAB Arrays in Python

This example shows how to use MATLAB® arrays in Python®.

The matlab package provides new Python data types to create arrays that can be passed to MATLAB functions. The matlab package can create arrays of any MATLAB numeric or logical type from Python sequence types. Multidimensional MATLAB arrays are supported.

Create a MATLAB array in Python, and call a MATLAB function on it.

import matlab
from production_server import client
client_obj = client.MWHttpClient("http://localhost:9910")
x = matlab.double([1,4,9,16,25])
print(client_obj.myArchive.sqrt(x))

[[1.0,2.0,3.0,4.0,5.0]]

You can use matlab.double to create an array of doubles given a Python list that contains numbers. You can call a MATLAB function such as sqrt on x, and the return value is another matlab.double array.

Create a multidimensional array. The magic function returns a 2-D array to Python scope.

a = client_obj.myArchive.magic(6)
print(a)

[[35.0,1.0,6.0,26.0,19.0,24.0],[3.0,32.0,7.0,21.0,23.0,25.0],
 [31.0,9.0,2.0,22.0,27.0,20.0],[8.0,28.0,33.0,17.0,10.0,15.0],
 [30.0,5.0,34.0,12.0,14.0,16.0],[4.0,36.0,29.0,13.0,18.0,11.0]]

Call the tril function to get the lower triangular portion of a.

b = client_obj.myArchive.tril(a)
print(b)

[[35.0,0.0,0.0,0.0,0.0,0.0],[3.0,32.0,0.0,0.0,0.0,0.0],
 [31.0,9.0,2.0,0.0,0.0,0.0],[8.0,28.0,33.0,17.0,0.0,0.0],
 [30.0,5.0,34.0,12.0,14.0,0.0],[4.0,36.0,29.0,13.0,18.0,11.0]]

More About

Was this topic helpful?