这个 pdf 文件可能会给你一些提示。我没有任何将 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 程序。但是,您必须编写读/写函数,并且在某些情况下,读/写开销可能会令人望而却步(即不会显着提高速度)..