У меня есть функция 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
Файл летучая имеет следующий код:
"C:\Program Files\R\R-3.2.2\bin\x64\R.exe" CMD BATCH runRScipt.R
При запуске функции в Matlab я получаю ниже сообщение:
C: \ Users \ ... mypath ...> "C: \ Program Files \ R \ R-3.2.2 \ bin \ x64 \ R.exe" CMD BATCH runRscript.R
Поскольку я получаю это сообщение в Matlab, я не сомневаюсь, что это поиск и чтение командного файла, но он не может выполнить сценарий R. Я знаю, что файл bat работает должным образом, так как я могу запустить его через командную строку (с командой, которая должна быть «dosCommand» в скрипте Matlab) или дважды щелкнув файл .bat.
[Это] (http://stackoverflow.com/questions/14167178/passing-command-line-arguments-to-r-cmd-batch) может быть связано. Также для этого есть определенный пакет, см. [Здесь] (http://www.mathworks.com/matlabcentral/answers/31708-running-r-within-matlab). –