2012-10-05 2 views
-3

mex 시스템에서 matlab과 함께 사용하기 위해 c로 작성된 특정 함수를 사용하고 싶습니다. 이것을 R로 이식하는 방법에 대한 아이디어 나 경험이 있으십니까?matlab mex files with R

의견이 모호하기 때문에 일부 내용을 말합니다. 거기에 R과 함께 사용하는 데 필요한 잘 작성된 matlab에 기능이 있습니다 (나머지 모든 코드는 R에 있음). 이 함수에는 빈 m- 파일이 있으며 설명서 만 있습니다. 모든 작업은 해당 .c 파일에 있지만이 C 코드는 matlab과 함께 사용하도록 특별히 작성된 것으로 mx 함수에 대한 많은 호출을 포함하고 있습니다.

데이터 파일을 통한 통신 제안이 작동하지 않습니다. 반복 알고리즘 내에서이 기능이 필요합니다.

+0

너무 많이 모호합니다. –

답변

1

This pdf file 몇 가지 정보를 얻을 수 있습니다. C로 R을 사용해 본 경험이 없지만 가능합니다.

내가 때때로 사용하고자하는 파일에서 언급하지 않은 한 가지 방법은 단순히 MATLAB/R 프로그램을 사용하여 C 프로그램에 입력 할 숫자의 텍스트 파일 (예 : c_data.dat)을 작성한 다음 일부 출력 번호 (예 : c_output.dat)를 분출하기 전에 시스템 명령을 사용하여 데이터 파일을 처리하는 독립 실행 형 C 프로그램을 호출합니다. 그런 다음 MATLAB/R 프로그램에서 파일의 데이터를 읽습니다. MATLAB에서

, 이것은 다음과 같습니다

%# custom function to write to file 
function_write_data(my_data_matrix, 'c_data.dat'); 

%# call the c program 
system('./c_program c_data.dat c_output.dat'); 

%# read the results 
my_results_matrix = function_read_data('c_output.dat'); 

(필자는 R 구문에 대한 확신 아니에요 - 당신이 자신을 위해 그것을 해결해야합니다!)

장점의 이것은 시나리오에서 R과 MATLAB 모두에 대해 정확히 동일한 C 프로그램을 사용할 수 있다는 것입니다. 읽기/쓰기 기능을 작성해야하며, 일부 시나리오의 경우 읽기/쓰기 오버 헤드가 엄청나게 빠를 수 있습니다. 즉, 속도가 현저하게 증가하지는 않습니다.