How to send Python list as a column vector in Matlab?
3 次查看(过去 30 天)
显示 更早的评论
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)
0 个评论
采纳的回答
Bo Li
2016-6-3
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:
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Call MATLAB from Python 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!