从matlab运行两个命令行指令

时间:2017-01-05 15:19:05

标签: r matlab cmd

我想从matlab运行R脚本。

我可以使用以下命令从cmd完美运行R代码:

cd "C:\Program Files\R\R-3.1.3\bin\x64"
R CMD BATCH "C:\Users\name\Desktop\Code.R"

然而在Matlab中我不知道如何运行这两条指令。 首先,我注意到我可以使用:

system('cd "C:\Program Files\R\R-3.1.3\bin\x64"')

运行commnand line命令。但是我需要运行两个。制作:

system('cd "C:\Program Files\R\R-3.1.3\bin\x64"')
system('R CMD BATCH "C:\Users\name\Desktop\Code.R"')

不起作用。

我还看到this post关于在一行中运行多个命令行指令,但也没有用。

任何人都知道怎么做?

2 个答案:

答案 0 :(得分:2)

您的脚本通常不应关心它的执行位置。所以你根本不需要cd语句:

system('"C:\Program Files\R\R-3.1.3\bin\x64\R.exe" CMD BATCH "C:\Users\name\Desktop\Code.R"')

小心认为R路径可能并不总是相同的......以编程方式找到R的位置可能更安全。虽然如何在Windows上的Matlab中做到这一点,我不知道。

此外,我真的不知道为什么R CMD BATCH甚至存在,但我强烈建议使用RScriptIt works much nicer for a number of reasons

然后代码变为:

system('"C:\Program Files\R\R-3.1.3\bin\x64\Rscript.exe" "C:\Users\name\Desktop\Code.R"')

答案 1 :(得分:-3)

尝试使用dos命令代替system