【发布时间】:2013-08-26 03:27:55
【问题描述】:
R 中的bigmemory 包提供了一个类big.matrix,它将一个矩阵存储在内存中,该矩阵可以作为某种C++ 对象在R 会话之间共享,返回一个指向R 语言的指针。
例如:
library(bigmemory)
> a <- as.big.matrix(matrix(0, 5, 5))
> a
An object of class "big.matrix"
Slot "address":
<pointer: 0x24ae350>
使用 bigmemory 包中的更多函数,我可以将矩阵的简短描述写入文件,打开另一个 R 会话,并从新的 R 会话访问内存中的矩阵。
从R,您也可以使用.Call() 或.C() 调用C/C++ 代码。
我想在C 或C++(我更熟悉C)中实现一些函数,这些函数将在共享内存中的这个矩阵上运行,但我不知道如何去做。
给定内存中的地址以及已知大小,我可以访问 C 中的 double[][] 吗?还是我完全偏离了轨道?
【问题讨论】:
标签: c++ c r rcpp r-bigmemory