几天来,我一直在用头撞墙,但找不到解决方案。
我有一个要从 Unity3D 项目的资产中运行的 Matlab 脚本,但我无法使其正常工作。脚本本身很好,因为它在 Matlab 中直接执行时可以正常工作。问题在于从 Unity 启动它。这就是我所拥有的。
String mFile = "Assets/Scripts/MatLab/script.m";
StreamReader reader = new StreamReader(mFile);
Process.Start(
"matlab",
"-nodisplay -nosplash -nodesktop -r \"" + reader.readToEnd() + "\""
);
reader.close();
我知道,这真的很笨拙,但这是迄今为止我发现的唯一有效的方法。
问题在于脚本中有双引号和空格,这会使命令行感到困惑。我试过转义那些字符,转义整个字符串,我能想到的一切。
在你问之前,是的,使用 MatLab 是我唯一的选择。我和下一个人一样讨厌它,但它有一些我需要的功能。
有没有人让这种事情发挥作用?
注意:我现在实际上无法访问该项目,因此上述代码中的任何错误都不是真正的问题,这只是我对它的最好纪念。