Include several folders into path using Matlab Engine for Python

134 views (last 30 days)
Hi everyone,
I've just found out the Matlab engine for Python and I've managed to install it and the simple commands work well as well. Now I have a problem:
I have a huge library with a lot of subfolders. Inside them there are a lot of functions and there are functions that call other functions through these folders. As you may know, in Matlab is not a problem until I specify the path and include all these folders in the path.
How can I do that in my python code? This is what I've written in python:
import matlab.engine
eng = matlab.engine.start_matlab()
path = r'C:\Users\*name*\Desktop\pythonProject\sfs-matlab-master'
eng.cd(path, nargout=0)
eng.example(nargout=0)
What I've done was:
1) put the library "sfs-matlab-master" into my python_project folder
2) Inside this library I have a script "example.m" which in turn call other functions inside the library
When I run the python code I got this error
Undefined function 'sound_field_mono_nfchoa' for input arguments of type 'struct'.
where "sound_field_mono_nfchoa" is a script which is inside other subfolders.
Hope I've made myself clear and that you could help me :)

Accepted Answer

Athul Prakash
Athul Prakash on 30 Oct 2020
Hi Davide,
If you're in MATLAB at the command line, you may use genpath and addpath as follows to add a folder 'myOuterFolder' and all its subfolders to the MATLAB path:
addpath(genpath('myOuterFolder'));
You may call the same function(s) in the MATLAB Engine as well:
eng = matlab.engine.start_matlab()
s = eng.genpath('myOuterFodler')
eng.addpath(s, nargout=0)
Hope it helps!
  1 Comment
Stefanie Schwarz
Stefanie Schwarz on 19 Jul 2023
Edited: Stefanie Schwarz on 19 Jul 2023
To add the paths to the MATLAB path permanently (so it is loaded automatically for every MATLAB session), make sure to run this in MATLAB:
addpath(genpath('myOuterFolder'));
savepath

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!