R语言长小数计算精度不准确

在R语言中进行矩阵和向量运算时,遇到长小数计算精度不准确的问题。通过Rcpp编写的代码可能面临精度丢失的挑战,寻求解答。
摘要由CSDN通过智能技术生成


今天使用R进行运算时,发现小数位数较多时,计算的精度明显不符合,看如下示例:


使用矩阵和向量运算时:

test<- matrix(runif(12,0.000001,0.1111111),nrow = 4)
ttttt <- runif(3, 0.000001, 0.1111111)


直接运算:
test+ttttt

           [,1]       [,2]      [,3]
[1,] 0.12989426 0.09735783 0.1353587
[2,] 0.08611409 0.11360696 0.1208149
[3,] 0.14625911 0.13526237 0.1777214
[4,] 0.03695250 0.09946161 0.1905938

使用Rcpp编写的程序运行结果:

Rcpp 代码:

//[[Rcpp::export]]
Rcpp::NumericMatrix matrixRowAddVector(Rcpp::NumericMatrix mat, Rcpp::NumericVector x) {
	if (x.size() != mat.ncol()) {
		Rcpp::stop("这里没有容错机制,矩阵的列的元素个数应该与向量的个数相同");
	}
	Rcpp::NumericMatrix result(mat.nrow(),mat.nco
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值