【问题标题】:Run two command line instructions from matlab从 matlab 运行两条命令行指令
【发布时间】:2017-01-05 23:54:25
【问题描述】:

我想从 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"')

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

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

不起作用。

我还看到this post 在一行中运行多个命令行指令,但那也不起作用。

有人知道怎么做吗?

【问题讨论】:

  • 创建一个运行指令的批处理文件并调用它
  • 我想避免这种情况,我希望代码尽可能透明。所以调用一个调用 R 脚本的批处理...

标签: r matlab cmd


【解决方案1】:

您的脚本通常不应该关心它在哪里执行。所以你根本不需要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"')

【讨论】:

  • 就是这样。谢谢!
【解决方案2】:

尝试使用dos 命令代替system

【讨论】:

  • dossystem在Windows平台上没有区别。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-03
  • 2017-05-05
  • 1970-01-01
  • 2018-01-30
  • 2018-02-26
  • 2014-07-23
相关资源
最近更新 更多