私はこの関数が自分のPC内にあるパスを見つけ、その同じディレクトリでbatファイルを実行するMatlab関数を持っています。このバットファイルは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:¥Users¥... mypath ...> "C:¥Program Files¥R¥R-3.2.2¥bin¥x64¥R.exe" CMD Batch runRscript.R
Matlabでこのメッセージが表示されているので、バッチファイルの検索と読み取りは間違いありませんが、Rスクリプトの実行に失敗します。私は、コマンドライン(Matlabスクリプトの "dosCommand"でなければならないコマンド)を使って、または.batファイルを2回クリックすることで、バットファイルが期待どおりに動作することを知っています。
[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)を参照してください。 –