我在Matlab上遇到问题。
我有一个c#包装器,该包装器创建了Matlab实例,并将目录更改为我具有各种功能的位置。然后,我调用所需的Matlab函数。
当该函数调用不在同一目录中但在我的Matlab路径上的另一个函数时,就会发生问题。 Matlab表示找不到该功能。只是为了使情况更加混乱,否则其他目录中的某些功能确实起作用。
在我的Matlab中,我有一个startup.m文件,该文件加载了我所有需要的路径。通过C#创建Matlab实例时会执行此操作吗?
如果我从Matlab手动运行代码,则代码可以完美运行。
MLApp.MLApp _matlab;
try
{
// create matlab instance
_matlab = new MLApp.MLApp();
// change to the directory where the function is located
_matlab.Execute(@"cd G:\MyPath\production\SomeFolder\");
// define the output
object result = null;
// call the matlab function upload_data
_matlab.Feval("someFunctionName", 0, out result, "parameter");
// quit matlab
_matlab.Quit();
// display result
object[] res = result as object[];
}
catch(Exception ex)
{
_matlab.Quit();
throw;
}