Вызов сценариев R в Matlab - PullRequest
15 голосов
/ 14 июля 2011

Можно ли вызывать R-скрипты в программе MATLAB? Как я могу это сделать?

Ответы [ 7 ]

6 голосов
/ 14 июля 2011

Вы можете использовать R в пакетном режиме . Если R находится на вашем пути, то вы можете позвонить из MATLAB:

system('R CMD BATCH infile outfile');

запустит код в infile и поместит вывод в выходной файл.

EDIT: Вы также можете попробовать другой подход, используя пакет R rscproxy и R (D) COM-сервер, описанный здесь .

5 голосов
/ 17 июня 2012

После использования R (D) COM и Matlab R-link какое-то время я не рекомендую его.Интерфейс COM имеет проблемы с синтаксическим анализом многих команд, и трудно отладить код.Я рекомендую использовать системную команду от Matlab, как описано в R Wiki .

3 голосов
/ 14 июля 2011

system - почти наверняка путь, как описано в других ответах. Для полноты вы также можете использовать возможности MATLAB для запуска кода Java и JRI или RCaller для вызова R из Java. Точно так же вы можете использовать возможности MATLAB для запуска кода .NET и R.NET .

2 голосов
/ 04 августа 2011

Да.В Windows я многое сделал через Matlab R-link , а затем R (D) COM-сервер на стороне R .

Работает прекраснодля передачи команд и данных туда и обратно.Вызов R через ОС возможен, но тогда вам придется разбирать (записывать) и анализировать (загружать) данные, передаваемые между ними.Это утомительно и не весело.Особенно если вокруг тебя много данных.Это также означает, что вы теряете состояние на стороне R. И каждый вызов такой же, как в первый раз.

В Linux или другой ОС, или даже для более общего использования, я бы сейчас попробовал Rstudio в качестве сервера -- см. http://www.rstudio.org/docs/server/getting_started для получения дополнительной информации.

1 голос
/ 03 апреля 2014

Другой способ RWiki рекомендуется :

 CurrentDirectory=strrep(pwd,'\','/');
 eval(['!C:\R\R-3.0.1\bin/Rscript "' CurrentDirectory '/Commands.R"'])
0 голосов
/ 14 июля 2011

Вы можете использовать команду system для выполнения R скриптов.Что-то вроде следующего:

[status] = system('R CMD BATCH [options] script.R [outfile]')

где [опции] - это опции, которые вы посылаете интерпретатору R., а [outfile] - ваш выходной файл.

0 голосов
/ 14 июля 2011

Вы можете запускать функции командной строки в matlab с помощью команды unix. Возможно, самым простым способом было бы установить скрипт R, который выводит результаты в текстовый файл, запустить скрипт в matlab с помощью команды unix, а затем (в matlab) убедиться, что файл существует, и загрузить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...