Доступ к фрагменту памяти по указателю в C из big.matrix в R

bigmemory пакет в R обеспечивает класс, big.matrix который хранит матрицу в памяти, которая может быть разделена между сеансами R как своего рода C++ объект, возвращая указатель на 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 Вы также можете позвонить C/C++ код с использованием .Call() или же .C(),

Я хотел бы реализовать некоторые функции в любом C или же C++ (Я более знаком с C), который будет работать на этой матрице в общей памяти, но я понятия не имею, как это сделать.

Учитывая адрес в памяти, наряду с известными размерами я могу получить двойной [] [] в C? или я совсем не в курсе?

3

Решение

Окей, удачи вам, Дирк Эддельбюттель и Ромен Франсуа написали потрясающий инструмент под названием Rcpp это сделает всю (очень) тяжелую работу за вас.
Установите пакет, прочтите виньетки и наслаждайтесь повторным использованием всех примеров кода, доступных на Галерея RCPP

Есть даже пример того, как использовать bigmemory в сочетании с Rcpp Вот

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]