python - 如何在 MatLab 中以 Python 方式解压二进制数据

标签 python matlab file

Python 有一种方法可以读取二进制数据 block ,然后将它们从原始编码解压为更易于访问的形式。例如,在我正在使用的一些 Python 代码中,我使用以下代码来完成此操作:

    with open(filename, "rb") as binary_file:
        # Read many records at once
        data = binary_file.read(number_of_records*record_size)

    fmt = "8B Q Q 2L 2L 2L 4H 4H 3H2B"
    self.data_array = np.asarray(list(struct.iter_unpack("< " + fmt, data)))

我想知道如何在 Matlab 中以同样有效的方式执行此操作,而无需单独读取每个变量。

Matlab中有什么东西可以做到这一点吗?

最佳答案

实现此目的的一种方法是使用 fread 读取数据,然后使用 typecast 进行转换。我不熟悉您使用的格式,但假设您有整数和 float 的集合。您可以将它们作为一大字节集合来读取,然后进行隐藏。

fid = fopen('file.bin', 'rb');
data = fread(fid, 32, '*uint8');
ints = typecast(data(1:8), 'int32');
floats = typecast(data(9:end), 'single');

关于python - 如何在 MatLab 中以 Python 方式解压二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56758772/

相关文章:

python - 在 nitrous.io 盒子上安装 pymongo

c# - 如何从 C# 访问结构内的 Matlab 字段

matlab - 我怎样才能用比内存更多的数据训练神经网络?

javascript - 让 PHP 根据用户选择上传的数量来抓取所有文件

java - 创建从资源路径到 jar 文件中图像的文件对象

python - 如何使用 sympy 图的标记参数?

python - 使用flask run vs python app.py vs python -m flask run有什么区别?

python - 根据已安装的 python 版本导入模块?

matlab - 实时视频输入中的像素 (MATLAB)

c - UTF-8 和 ISO8859-1 文件