Можно ли вызвать R-скрипты в программе MATLAB? Как я могу это сделать?
Вызов скриптов R в Matlab
Ответ 1
Вы можете использовать R в пакетном режиме. Если R находится на вашем пути, вы можете позвонить из MATLAB:
system('R CMD BATCH infile outfile');
будет запускать код в файле infile и размещать в outfile.
EDIT: Вы также можете попробовать попробовать другой подход, используя пакет R rscproxy и R (D) COM-сервер, описанный здесь.
Ответ 2
После использования R (D) COM и Matlab R-link некоторое время я не рекомендую его. Интерфейс COM имеет проблемы при анализе многих команд, и отладить код сложно. Я рекомендую использовать системную команду из Matlab, как описано в R Wiki.
Ответ 3
system
- почти наверняка путь, как описано в других ответах. Для полноты вы также можете использовать MATLAB для запуска Java-кода и JRI или RCaller, чтобы вызвать R из Java. Аналогично, вы можете использовать MATLAB для запуска .NET-кода и R.NET.
Ответ 4
Да. В Windows я многое сделал с помощью Matlab R-link, а затем R (D) COM-сервер на стороне R.
Он прекрасно работает для передачи команд и данных взад и вперед. Вызов R через ОС возможен, но тогда вы должны отделять (писать) и анализировать (загружать) данные, передаваемые между ними. Это утомительно и не весело. Особенно, если у вас много данных. Это также означает, что вы теряете состояние на стороне R, и каждый вызов так же, как в первый раз.
В Linux или другой ОС или даже для более общего использования я теперь попробую Rstudio в качестве сервера - см. http://www.rstudio.org/docs/server/getting_started для получения дополнительной информации.
Ответ 5
Другой способ RWiki рекомендуется:
CurrentDirectory=strrep(pwd,'\','/');
eval(['!C:\R\R-3.0.1\bin/Rscript "' CurrentDirectory '/Commands.R"'])
Ответ 6
Вы можете запускать функции командной строки в Matlab с помощью команды unix
. Самым простым способом, вероятно, было бы установить R script, который выводит результаты в текстовый файл, запускает script в matlab с помощью команды unix
, а затем (в matlab) проверяет, существует ли файл и загружает его вверх.
Ответ 7
Вы можете использовать команду system
для выполнения R-скриптов. Что-то вроде следующего:
[status] = system('R CMD BATCH [options] script.R [outfile]')
где [параметры] - это параметры, которые вы отправляете интерпретатору R, а [outfile] - ваш выходной файл.