进行故障排除MATLAB错误Python
MATLAB错误Python
当一个MATLAB®Python函数提出了一个错误,MATLAB引擎®停止了MATLAB函数,捕获异常。引擎将错误消息复制到一个新的Python例外。发动机提高了Python例外。
如果Python解释器捕获异常,译员来自MATLAB显示错误消息。你也可以处理异常提出的引擎在您的Python代码。看到matlab.engine.MatlabEngine
和matlab.engine.FutureResult
参考页面的异常类型发动机可以提高。
MatlabExecutionError:未定义的函数
调用MATLAB√6
从Python函数在整数。(这段代码示例省略了Python追溯,只显示了错误消息)。
导入matlab。引擎eng = matlab.engine.start_matlab()打印(eng.sqrt (4))
matlab.engine。MatlabExecutionError:未定义的函数“√”“int64”类型的输入参数。
MATLAB定义了一个√6
函数,但预计输入参数的数据类型双
,而不是一个整数。然而,输入参数是4,通过MATLAB之前,Python解释4为整数。引擎将Python整数转换成一个int64
MATLAB数据类型。
MATLAB和Python为数字定义不同的默认类型。如果你输入x = 4
在MATLAB命令行,x
MATLAB是一种双
。如果你输入x = 4
在Python命令行,x
是一个Pythonint
。
为了避免这种错误,指定Python数据类型的输入参数浮动
。MATLAB引擎转换这种类型双
。
打印(eng.sqrt (4.0))
2.0
SyntaxError:表达式无效的目标
你可以叫MATLABeval
从Python创建MATLAB函数变量。(这段代码示例省略了Python追溯,只显示了错误消息)。
导入matlab。eng引擎eng = matlab.engine.start_matlab ()。eval (x = 4,)
SyntaxError:错误:表达式的左边等号不是一个有效的目标为一个任务。
当引擎调用eval
,它通过MATLAB为执行的语句。当你不指定nargout
输入参数,发动机预计一个输出参数。然而,这没有MATLAB语句返回输出参数。
为了避免这种错误,指定nargout
为0时MATLAB函数调用返回输出参数。
eng。eval("x = 4;",nargout=0)
找不到MATLAB会议在Python
如果你覆盖操作系统临时
或TMP
在MATLAB环境变量,Python可能无法连接到Python MATLAB引擎。例如,如果您在Python提示符处输入以下:
matlab.engine.find_matlab ()
Python显示()
。
Python使用MATLAB引擎临时文件夹为MATLAB会话共享记录信息。为了解决这个问题,做出以下更改环境变量在Python中。temp_folder
是你设置的文件夹的路径在MATLAB。
操作系统。环境(TMP的)= r 'temp_folder的操作系统。环境(临时的)= r 'temp_folder' eng = matlab.engine.find_matlab ()