Passing path as input argument in matlab.engine
    17 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Deepa Maheshvare
      
 am 17 Jun. 2023
  
    
    
    
    
    Kommentiert: Deepa Maheshvare
      
 am 18 Jun. 2023
            I'm using the following lines of code to run main.m (I:/xxx/simcode/xxx/main) with path as input argument, using matlabe engine
import matlab.engine
eng = matlab.engine.start_matlab()
eng.run("I:/xxx/simcode/xxx/main, ['I:/xxx/xxxx/xxx/task5'])
eng.quit()
But I get an error,
  self._result = pythonengine.getFEvalResult(self._future,self._nargout, None, out=self._out, err=self._err)
matlab.engine.MatlabExecutionError: Too many input arguments.
Could someone please suggest how to fix this?
I would like to run the main.m from python by passing an input argument which is a path.
Akzeptierte Antwort
  Steven Lord
    
      
 am 18 Jun. 2023
        The run function in MATLAB accepts only one input, the name of a script file. Is your main.m a script file or a function file? If the former it cannot accept input arguments; that's one of the defining characteristics of a script! If it's a function file, I think you can run it directly with something like (untested)
import matlab.engine
eng = matlab.engine.start_matlab()
eng.main("['I:/xxx/xxxx/xxx/task5']")
eng.quit()
Or if you need to change directories before calling your function, call cd then call feval in your MATLAB Engine session.
Note that I haven't used this functionality directly, I'm just going by what I see in the documentation.
4 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Call MATLAB from Python finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

