我在 OS X 上使用MATLAB Engine C 接口。我注意到如果engEvalString()
给出了不完整的 MATLAB 输入,例如
engEvalString(ep, "x=[1 2");
或者
engEvalString(ep, "for i=1:10");
那么这个函数就永远不会返回。最快的测试方法是使用engdemo.c示例,该示例将提示输入一段 MATLAB 代码并对其进行评估(即您可以键入任何内容)。
我的应用程序允许用户输入任意 MATLAB 输入并对其进行评估,因此我无法轻松防止输入不完整。有解决方法吗?有没有办法防止engEvalString()
在这种情况下挂起,或者有没有办法在我实际将它传递给 MATLAB 之前检查任意一段代码的正确性/完整性?