How to send Python list as a column vector in Matlab?

16 views (last 30 days)
JHaazez
JHaazez on 3 Jun 2016
Answered: Bo Li on 3 Jun 2016
Following the solution to this thread, https://www.mathworks.com/matlabcentral/answers/166188-can-i-call-my-own-custom-matlab-functions-from-python-r2014b I have been able to successfully reach personal MATLAB functions. The issue when calling these functions is that they expect MATLAB column vectors, but Python does not support this, Python uses lists. I tried using Python's numpy to create something that resembles the MATLAB column vector more than a Python list but the matlab.engine doesn't seem to support sending numpy arrays.
How can I send a Python list as a column vector?
Is the only way to have my MATLAB function's take the transpose of the Python list to form a column vector once I have already reached MATLAB?
Below is what I am trying to do.
import matlab.engine
eng = matlab.engine.start_matlab()
eng.addpath(r'c:\myPath', nargout=0)
testList = [0.50, 0.55, 0.60]
transposedTestList = eng.tranpose(testList) # here is where the issue is
output = myMatlabFunction(transposedTestList)

Accepted Answer

Bo Li
Bo Li on 3 Jun 2016
Try MATLAB arrays for Python:
>>> testList=[0.5, 0.55, 0.6]
>>> testVector=matlab.double(testList)
>>> testColumnVector=eng.transpose(testVector)
>>> testVector.size
(1, 3)
>>> testColumnVector.size
(3, 1)
>>> l
Reference:

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!