執行批處理文件,我有一個Matlab函數,發現其中這個功能我的電腦內的路徑,然後運行在同一個目錄下一個bat文件。這個bat文件是爲了執行一個R腳本,但是由於一個奇怪的原因而沒有這麼做。從MATLAB
這是我的Matlab的功能:
function [] = myFunction(arg)
% Find the directory of the executing script
thisDir = fileparts(mfilename('fullpath'));
% Save arg as a csv on this directory, this will be read by my R script
tmpDir = strcat(thisDir,'/tmp.csv');
csvwrite(tmpDir,arg);
% Specify the command to run
dosCommand = ['call "' thisDir '/runRscript.bat"'];
dos(dosCommand);
end
BAT文件具有下面的代碼:
"C:\Program Files\R\R-3.2.2\bin\x64\R.exe" CMD BATCH runRScipt.R
當我在Matlab運行功能,我得到了以下信息:
C:\用戶\ ... mypath中...> 「C:\ Program Files文件\ r \ R-3.2.2 \ BIN \ 64 \運行R.exe」 CMD批 runRscript.R
由於我在Matlab中得到這個消息,我毫不懷疑它正在查找和讀取批處理文件,但是它無法執行R腳本。我知道bat文件按預期工作,因爲我可以通過命令行運行(與應在MATLAB腳本的「dosCommand」命令),或者通過在.bat文件點擊兩次。
[This](http://stackoverflow.com/questions/14167178/passing-command-line-arguments-to-r-cmd-batch)可能是相關的。 也有似乎是一個特定的包吧,見[這裏](http://www.mathworks.com/matlabcentral/answers/31708-running-r-within-matlab)。 –