标签: bindata

在Ruby中将基数为2的数字字符串数组写入二进制文件

我在Ruby中编写了一个简单的霍夫曼编码.作为输出,我有一个数组,例如:

["010", "1111", "10", "10", "110", "1110", "001", "110", "000", "10", "011"]
Run Code Online (Sandbox Code Playgroud)

我需要在文件中写入,然后读取它.我尝试了几种方法:

IO.binwrite("out.cake", array)
Run Code Online (Sandbox Code Playgroud)

我得到一个简单的文本文件,而不是二进制.

要么:

File.open("out.cake", 'wb' ) do |output|
  array.each do | byte |
       output.print byte.chr
  end
end
Run Code Online (Sandbox Code Playgroud)

看起来它有效,但后来我无法将其读入阵列.

我应该使用哪种编码?

ruby io bindata

19
推荐指数
1
解决办法
3万
查看次数

如何开始读取二进制数据的偏移量?

我有一个类似C的结构:

SomeStruct << BinData::Record
endian :little

uint32 :offsetOfName
uint32 :offsetOfLastname
#...
uint32 :lenVars
struct :Person, :length => :lenVars
    string :name
    string :lname
    #...
end
Run Code Online (Sandbox Code Playgroud)

我之前有很多偏移和长度:Person.所有偏移量和长度都描述了:Person结构中的数据.

如何在指定的偏移量,给定长度或直到下一个偏移量开始读取数据?

ruby binary-data bindata

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

如何计算生成相关二元变量的边际概率

假设我想创建50个长度为100的二进制变量,每个变量彼此相关.

因为我用指定的rho创建了一个相关矩阵:

cor.mat <- matrix(0.2,nrow=50, ncol=50)
diag(cor.mat) <- 1
Run Code Online (Sandbox Code Playgroud)

接下来我使用rmvbin:

library(bindata)
rmvbin<-rmvbin(100, margprob=x, bincorr=cor.mat)
Run Code Online (Sandbox Code Playgroud)

但是,我不确定如何计算margprob参数.有人可以帮忙吗?

它应该是每行和每列概率之和的向量吗?

r bindata

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

使用Ruby BinData gem来读取选择

我正在使用Ruby和BinData gem 实现数据结构.我需要实现一个Choice值.根据BinData文档,可以选择实现:

class MyData < BinData::Record
  uint8  :type
  choice :data, :selection => :type do
    type key #option 1
    type key #option 2
  end
end
Run Code Online (Sandbox Code Playgroud)

我需要在选择中有一个默认选项:

class MyRecord < BinData::Record
    uint8 :type
    choice :mydata, :selection => :type do
            uint32 0
            uint16 1
    end
end
Run Code Online (Sandbox Code Playgroud)

如果type不是01在上面的代码中,如何处理?

ruby choice binary-data bindata

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

标签 统计

bindata ×4

ruby ×3

binary-data ×2

choice ×1

io ×1

r ×1