2

几天来,我一直在用头撞墙,但找不到解决方案。

我有一个要从 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 是我唯一的选择。我和下一个人一样讨厌它,但它有一些我需要的功能。

有没有人让这种事情发挥作用?

注意:我现在实际上无法访问该项目,因此上述代码中的任何错误都不是真正的问题,这只是我对它的最好纪念。

4

0 回答 0