草庐IT

c++ - 从R中的嵌入式c++函数返回值

我有一些R代码,有点慢,所以我一直在尝试使用“内联”库直接在R代码中编写一些C++代码。效果很好,我现在正在尝试调整它。如果我在R中分配“结果”数据结构并将它们作为函数参数传递给c函数,我只能让它工作。我想知道是否可以在R代码中使用非voidc/c++函数,以便从c/c++而不是R分配和返回内存。请看下面的例子:library(inline)cppSig谢谢 最佳答案 有些事情我会采取不同的做法,尤其是在只是随意浏览Rcpp文档之后。所以这里只是一个快速列表:是的,我们可以使循环更快。通常很多。是的,我们可以返回原子C/C++类型以

c++ - 有效地将数值 vector 的每个元素与前一个元素进行比较

我正在尝试生成间隔值-给定一个vector,比如20、30、69、89、200,每一对之间有什么区别?数据集有25m个元素,所以我查看了R和RCpp的解决方案——速度很重要。R实现是:intertimeC++实现:NumericVectorintertime(NumericVectortimestamps){//Identifysizeofinputobjectintinput_size=timestamps.size();//InstantiateoutputobjectNumericVectoroutput(input_size-1);//Loopoverthedatafor(in

c++ - 在 Rcpp 中包装一个 Fortran 函数

这最初在我看来是一项简单的任务,但我无法完成以下工作。我试图将一个fortran子例程包装到一个Rcpp调用中,以便在R中使用该函数。目标是将该函数合并到一个包中,因此仅在特定*.so文件上使用dyn.load()的想法是不可行的(除非有人可以告诉我怎么做?)。通过阅读类似的帖子,我怀疑在makevars文件中指定标志可能会解决问题,但提供的信息非常简洁here并真诚地感谢一些澄清。我已尽可能接近文档完成以下操作。使用Rcpp.package.skeleton创建包结构将我的fortran文件(hello.f)放在src目录中为Rcpp包装器(hello.cpp)创建了一个基本的cpp

c++ - Instruments Call Tree 破坏了 R、C++ 和 Fortran 的混合

我正在尝试针对CPU时间分析OpenMx的一个函数,一个包含C++和Fortran代码的R包。我的操作系统是OSX10.10。我读过section关于R手册中的这个主题。本款和thispost带我试试Instruments。这是我做的打开的工具选择时间分析器模板按下记录使用RStudio启动我的R脚本我得到以下输出:.命令行工具sample返回相同的输出。问题是它看起来像omxunsafedgemm_会直接从主线程调用。但是,这是一个低级Fortran函数。它总是由名为omxDGEMM的C++函数调用。在此示例中,omxDGEMM首先由omxCallRamExpection调用(因此几

c++ - 此代码 O(R*C) 的最坏时间情况如何?

我在InterviewBit上遇到了这个问题:intmemo[101][101];intfindMinPath(vector>V,intr,intc){intR=V.size();intC=V[0].size();if(r>=R||c>=C)return100000000;//Infinityif(r==R-1&&c==C-1)return0;if(memo[r][c]!=-1)returnmemo[r][c];memo[r][c]=V[r][c]+min(findMinPath(V,r+1,c),findMinPath(V,r,c+1));returnmemo[r][c];}Call

R和多列图形

我就像R中的新手,在大学学习期间与之合作,但是它很远...我有一个具有4列的表:葡萄藤ID和3个日期的NDVI(植被指数)值的3列。ID0905201725052017160620171233244238222523424732242312454124115124我知道如何读取我的表格,用它创建变量,选择列或行,做一个plot(x,y).我的目标是为每个ID代表一个具有3个NDVI值的行,以及在同一图形窗口中的所有内容但是我有点困惑地做我想做的事。有人可以提出一些想法来创建这个吗?看答案像这样?library(ggplot2)library(dplyr)library(tidyr)df%>%g

使用大疆TSDK实现对红外照片(R_JPEG)的处理 | 无人机热红外照片R_JPG转成TIF后拼接 | 热红外照片温度信息提取 | 方法一

        使用大疆御2行业进阶版(M2EA)拍摄,得到红外照片(R-JPEG),R-JPEG照片使用大疆红外热分析工具3(DJIThermalAnalysisTool3)打开设置才会显示温度值,但我们需要的是照片中每个像素表示温度,而不是RGB    下面我会展示将R-JPEG图像批量转成TIF,TIF图像中每个像素的数据不再表示颜色信息,而是表示了温度,最后将TIF拼接成完整影像        系统版本:windows1064位        visualstudio版本:2019        大疆TSDK版本:dji_thermal_sdk_v1.4_20220929       

c++ - 如何告诉 C++ 根据索引指示符放弃 vector 中的某些元素

我正在使用RCPP来加速我项目中的R代码。现在我正在做的是使用Armadillo包将我的R代码转换为C++。我发现我经常用C++编写多行来替换R中的一行...这是我的问题:我有一个vector存储数据:数据。我还有一个矩阵存储我需要访问的元素的索引。请允许我先用R说明我的场景:>Data[1]45678和>index[,1][,2][,3][1,]123[2,]100[3,]202对于“索引”矩阵的每一行,我想从数据中获取相应的元素。在R中,我只需要这样编码:>Data[index[1,]][1]456>Data[index[2,]][1]4>Data[index[3,]][1]55即

c++ - R 和 C++ 迭代

我正在尝试使用Rcpp从R编写一个在C++中运行循环的函数。我有一个矩阵Z,它比函数应该返回的矩阵OUT短一行,因为OUT第一行的每个位置都将由标量sigma_0给出。该函数应该实现一个微分方程。每次迭代都取决于矩阵Z的值以及矩阵OUT的先前生成值。我得到的是这个:cppFunction('NumericMatrixsim(NumericMatrixZ,longdoublesigma_0,longdoubledelta,longdoubleomega,longdoublegamma){intnrow=Z.nrow()+1,ncol=Z.ncol();NumericMatrixout(n

c++ - 如何使用 Rcpp 注册 native 例程?

我正在写一个Bioconductor包。为此,它需要通过BiocCheck.我正在使用Rcpp和Rstudio使用标签//[[Rcpp::export]]和Rcpp类而不是SEXP类使C++代码对R可用。Rstudio自动生成Rcpp_export.cpp和Rcpp_export.R并且工作正常。但是,BiocCheck对此有提示:Checkingnativeroutineregistration..Registernativeroutines!seehttp://cran.r-project.org/doc/manuals/R-exts.html#Registering-native