簡體   English   中英

如何以Python方式在MatLab中解壓縮二進制數據

[英]How to unpack binary data in MatLab the Python way

Python可以讀取二進制數據塊,然后將其從原始編碼中解壓縮為更易於訪問的形式。 例如,在我正在使用的某些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進行typecast 我不熟悉您使用的格式,但是說您有整數和浮點數的集合。 您可以將它們讀取為一個大的字節集合,然后隱蔽讀取。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM