2
我是Matlab和Python的新手,我必須將Matlab中的程序轉換爲Python。我不知道如何在從Python中的文件中讀取數據後對數據進行類型轉換。使用的文件是一個二進制文件。Matlab到Python轉換二進制文件讀取
下面是Matlab代碼:
fid = fopen (filename, 'r');
fseek (fid, 0, -1);
meta = zeros (n, 9, 'single');
v = zeros (n, 128, 'single');
d = 0;
for i = 1:n
meta(i,:) = fread (fid, 9, 'float');
d = fread (fid, 1, 'int');
v(i,:) = fread (fid, d, 'uint8=>single');
end
我已經用Python寫了以下程序:
fid = open(filename, 'r')
fid.seek(0 , 0)
meta = np.zeros((n,9),dtype = np.float32)
v = np.zeros((n,128),dtype = np.float32)
for i in range(n):
data_str = fid.read(9);
meta[1,:] = unpack('f', data_str)
對於這個解壓,我得到錯誤的
「解壓需要長度爲4的字符串參數「
。 請提出建議以使其正常工作。
你應該看看這個線程:http:// stackoverflow .COM /問題/ 3162191/Python的二進制文件,讀取問題。不一定很難,但對於兩種語言的初學者來說都相當有挑戰性。 – jake77