在Julia中读取大型结构化二进制文件

时间:2018-01-16 18:19:16

标签: julia binaryfiles

我有一个包含相同记录的大型二进制文件

# Julia code
struct Event
    ia::Int32
    ig::Int32
    Eg::Float64
    Tg::Float64
    xn::Float64
    yn::Float64
    zn::Float64

    # uninitialized constructor
    Event() = new()
end

如何在Julia中翻译此C ++代码?

// C++ code
struct Event
{
  int32_t ia;  
  int32_t ig;  
  double  Eg; 
  double  Tg;
  double  xn; 
  double  yn;
  double  zn;
};

// ... compute event_count

std::ifstream in(filename,std::ifstream::binary);
std::vector<Event> array(event_count);

in.read((char*)array.data(), event_count*sizeof(Event)); // <- Julia way: how to?

1 个答案:

答案 0 :(得分:1)

您可以使用read(filename, Event, n),其中n是您想要阅读的元素数量(目标向量的大小)。实际上n可以是例如给出输出数组维度的元组。

您可以查看read功能的帮助以获取其他选项。