小弟最近无法忍受R在大量循环计算中的速度,决心在R中调用C的函数。看了epoh老师关于R和C混编的讲解后深受启发https://bbs.pinggu.org/thread-1126777-1-1.html
但是现在我碰到了一个问题,如果我在void中传递的参数不是数或者一维数组,而是一个矩阵:一个简单的例子如下
DLLIMPORT void myfun(int *k, double **ab)
{
int i, j;
for(i = 0; i < *k; i++)
for(j = 0; j < *k; j++)
ab [l][j] = i-j;
}
那么接下来在R中调用dll文件时
dyn.load("myfun.dll")
myf <- function(k){
.C("myfun",
as.integer(k),
ab=???)$ab
}
这里的???该用什么了。如果ab是数组,我可以用double(xxx)。但是矩阵情况下我尝试过各种写法,都不成功。希望高手能帮忙解答!


雷达卡






京公网安备 11010802022788号







