Trouble converting data from MATLAB to Python
11 views (last 30 days)
Show older comments
Alex Weaver
on 10 Mar 2020
Commented: Kojiro Saito
on 12 Mar 2020
I'm just trying to get a basic understanding of how the data types are converted. I have seen the help pages on the Mathworks website, but they don't seem to offer an example. I am trying to run python scripts in MATLAB.
The matlab code is
x = 4;
system('python pythontest.py');
The python script is
y = x*5
print(y)
So how do I get the x to carry over to python?
0 Comments
Accepted Answer
Kojiro Saito
on 11 Mar 2020
I think there are three ways.
(1) Use buitin Python functions by py.eval
x = 4;
workspace = py.dict(pyargs('x',x));
y = py.eval('x*5', workspace)
Python's eval does not allow variable assignment such as y=x*5, so here is another way by py.exec.
(2) Use buitin Python functions by py.exec
x = 4;
workspace = py.dict(pyargs('x',x));
py.exec('y=x*5;print(y)', workspace)
(3) Call Python class.
First, make the python script as a class.
pythontest.py
class Test:
def test(x):
y=x*5
print(y)
Call this Python class from MATLAB.
x = 4;
%% Import custom Python module
myClass = py.importlib.import_module('pythontest');
myClass.Test.test(x)
For detail, please refer to the document.
2 Comments
Kojiro Saito
on 12 Mar 2020
First, Python 64bit version (installer is Windows x86-64 MSI installer as of Windows) is neccessary because current MATLAB (R2016a or later) only supports 64bit.
Second, if Python is not registered in Windows resigetry, you need to specify the Python exe path in MATLAB. For exampl, if Python exe is under C:\Languages\Python\python.exe, you need to do the following in MATLAB.
pyversion C:\Languages\Python\python.exe
More Answers (0)
See Also
Categories
Find more on Call Python from MATLAB in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!