我需要从python脚本中使用已定义的MATLABPATH调用matlab,我尝试使用python中的以下代码(片段)执行此操作:
addMatlabPath = os.path.join(<validPath>,'src') + ":" + \
os.path.join(<someOtherValidPaht>,'src') + ":"
matlabPathCommand = "export MATLABPATH="+addMatlabPath+"$MATLABPATH"
commandLine = matlabPathCommand+" && echo $MATLABPATH && "+"/Applications/MATLAB_R2015a.app/bin/matlab -nodisplay -nosplash -r \"my_matlab_script\"".format(os.path.realpath(os.path.dirname(__file__)),output_dir)
我尝试通过子进程执行commandLine:
process = subprocess.check_call(commandLine, stdout=out_buffer, stderr=subprocess.STDOUT,shell=True)
我可以在没有matlabPathCommand
和前面的回声部分的情况下完美地调用matlab。
我用于变量addMatlabPath
的路径是有效的。我测试了命令matlabPathCommand+ && echo $MATLABPPATH
,这可以正常工作。
因此,命令的两个部分都按预期单独工作,但不能一起工作。 Python似乎挂在check_call命令中,即使经过多次调用matlab通常需要,也不会返回。
是否有人提示我的错误可能是什么?
答案 0 :(得分:0)
上面的python代码片段是正确的。 matlab代码中存在一个问题,我在测试时无法识别。可以删除此问题和答案。