小编dan*_*345的帖子

处理R中的非常小的数字

我需要计算一个非常小的数字列表,如

(0.1)^ 1000,0.2 ^(1200),

然后将它们归一化,使它们总结为一个ie

a1 = 0.1 ^ 1000,a2 = 0.2 ^ 1200

我想计算a1'= a1 /(a1 + a2),a2'= a2(a1 + a2).

我遇到了下溢问题,因为我得到a1 = 0.我怎么能绕过这个?从理论上讲,我可以处理日志,然后log(a1)= 1000*log(0.l)将是一种表示没有下溢问题的方法 - 但为了规范化我需要得到log(a1 + a2) - 我无法计算,因为我不能直接代表a1.

我用R编程 - 据我所知,c#中没有数据类型如Decimal,它可以让你比双精度值更好.

任何建议将不胜感激,谢谢

r underflow

15
推荐指数
2
解决办法
1万
查看次数

查找多个/重叠匹配子串的索引

我有一个字符串s="CCCGTGCC"和一个子字符串ss="CC".我希望得到所有索引,s然后启动字符串ss.在我的例子中,我想要取回数组c(1,2,6).

是否有任何字符串功能可以实现这一目标?请注意,我的字符串是在表单中"CCCGTGCC",而不是c("C","C","C","G","T","G","C","C").

grep 只返回字符串中是否有匹配项,而不是字符串中匹配项的索引,除非我遗漏了某些内容.

grep r character

15
推荐指数
1
解决办法
4556
查看次数

eclipse调试键无法正常工作

我正在使用eclipse Indigo cdt调试我的C++项目,并且出于某种原因,当我调试时F*键停止工作.(F8,F6等......允许我转到下一行等)

任何人都有任何想法?谢谢.

eclipse eclipse-cdt

13
推荐指数
2
解决办法
2万
查看次数

Matlab中结构内的单元格数组 - 可能吗?

我想在单个结构中包含一些变量,以便更容易地输入和输出函数,因为它们被发送很多.问题是其中一个变量是一个单元格数组 - 特别是包含字符串.显然,一旦给出了变量之一

struct(var1,var2,...) 
Run Code Online (Sandbox Code Playgroud)

是一个单元格数组,然后它使结构体成为结构的单元格数组,而不是让单元格数组成为结构的内部变量 - 这不是我想要的结果,并且需要大量的代码.

这个问题有解决方案/解决方法吗?

matlab struct cell-array

12
推荐指数
1
解决办法
2万
查看次数

我应该使用最新的GCC版本(一般情况下,特别是今天)

我想知道使用最新的GCC版本是否安全,或者人们通常会返回几个版本(如果有的话).是否存在可以假设(相对)无bug的可信版本,或者我可以安全地假设(对于非救生程序)最新的GCC版本是否可以安全使用?

编辑:

安全 - 我的意思是主要是无bug,即在执行方面.

c++ gcc

9
推荐指数
1
解决办法
4341
查看次数

R中的布局内部布局

我正在使用R使用heatmap.2从矩阵创建热图 - 我想将这些图像分组为一个大图像 - 我通常用来实现这一点的是布局() - 但这不起作用,因为热图.2使用布局,显然布局不能递归地工作.

有没有人对如何在没有布局的情况下将2个图像组合在一起,或者如何使布局支持递归调用有任何建议?

mat = matrix(nrow=3,nrow=3,1:9)
layout(matrix(nrow=2,ncol=1))
heatmap.2(mat) ## overrides the layout and produces only one plot that takes whole screen
heatmap.2(mat) ## still only one image
Run Code Online (Sandbox Code Playgroud)

谢谢.

layout r

6
推荐指数
1
解决办法
2896
查看次数

我在哪里可以获得GCC二进制文件?

我想获得最新的GCC linux二进制文件,一个简单的链接 - >下载.有谁知道这样的地方吗?我很难找到一个.

当然有可能下载源代码并编译它 - 但http://gcc.gnu.org/install/download.html 中的说明 既冗长又可怕,所以简单地获取二进制文件会很好, 如果我能.

编辑:我不是我的计算机管理员,所以我不能使用apt-get install.

gcc

6
推荐指数
1
解决办法
7531
查看次数

在R语言中使用包'Brobdingnag'

我在使用Brobdingnag软件包时遇到了问题 - 设置完成后

a2 <- as.brob(0.1)^1000, 
Run Code Online (Sandbox Code Playgroud)

a2 = exp(-2302.6)

a1 <- as.brob(0.1)^800, 
Run Code Online (Sandbox Code Playgroud)

a1 = exp(-1842.1)

使用sum(a1,a2)和sum(a2,a1)得到不同的结果 - 每次结果等于sum函数的第一个参数.似乎总和并没有被Brobdingang包覆盖,即使它应该是?或者也许我做错了什么?

我问这个问题也是对我写的另一个问题的回复,请看这里

[编辑:包裹作者的回答]

嗨丹

这绝对是包中的一个错误; 感谢您的报告!不幸的是,纠正它将花费我相当长的时间.

在此期间,请在下面找到通常的R idiom来计算两个brobs的总和:

> a1 <- as.brob(0.1)^800
> a2 <- as.brob(0.1)^1000
> a1+a2


> a1 <- as.brob(0.1)^800
> a2 <- as.brob(0.1)^1000


> a1+a2
[1] +exp(-1842.1)
> a2+a1
[1] +exp(-1842.1)

> sum(cbrob(a1,a2))
[1] +exp(-1842.1)
> sum(cbrob(a2,a1))
[1] +exp(-1842.1)
> 
Run Code Online (Sandbox Code Playgroud)

r

5
推荐指数
1
解决办法
740
查看次数

正确使用interal函数和openmp

我有一个调用内部函数的for循环:

some variables
for(int i=0; i< 10000000; i++)
    func(variables)
Run Code Online (Sandbox Code Playgroud)

基本上,func获取对某个数组A的引用,并在A [i]中插入值 - 所以我确信每次调用func实际上都会尝试将值插入A中的不同位置,而所有其他输入变量都保持不变与for循环之前相同.所以func是线程安全的.

我可以安全地将代码更改为

some variables
#pragma omp parallel for
for(int i=0; i< 10000000; i++)
    func(variables)
Run Code Online (Sandbox Code Playgroud)

根据我对openmp教程的理解,这还不够好 - 因为openmp库不会知道给func的变量是真的线程安全的,所以这会产生尝试执行同步,这会减慢速度,我需要声明变量私有等.但实际上,当尝试上面的代码时,它似乎确实更快和并行工作 - 这是否符合预期?我只是想确保我没有错过任何东西.

func的声明:

 func(int i, int client_num, const vector<int>& vec)
Run Code Online (Sandbox Code Playgroud)

c++ loops openmp

5
推荐指数
1
解决办法
1644
查看次数

如何在R中将所有子集设置为N.

我想生成一个列表,其中包含R中数字1:N的所有2 ^ n个子集.如何可能?

expand.grid( rep( list( 0:4), 2))
Run Code Online (Sandbox Code Playgroud)

返回包含0:4大小2的所有子集的数据框 - 但我想要一个列表,其中包含所有大小的所有子集.

r

5
推荐指数
2
解决办法
5672
查看次数

标签 统计

r ×5

c++ ×2

gcc ×2

cell-array ×1

character ×1

eclipse ×1

eclipse-cdt ×1

grep ×1

layout ×1

loops ×1

matlab ×1

openmp ×1

struct ×1

underflow ×1