2011-11-08 109 views
1

我使用此代碼片段來讀取二進制文件到一個陣列讀取二進制文件轉換成一個二維數組MATLAB

fid=fopen('data.bin','rb') % opens the file for reading 
A = fread(fid, count, 'int16') % reads _count_ elements and stores them in A 

但它讀取文件到一個1個維陣列。有沒有直接的方法來讀取一個二進制文件到一個二維數組,而不必編寫循環來做到這一點?

回答

3

我相信這是你所需要的:

fid = fopen('data.bin','rb'); 
A = fread(fid, [rows columns], 'int16') 
1

您必須事先知道要讀取的矩陣的行數/列數。你讀出的值作爲數組這樣,那麼重塑結果進料粒度:

A = reshape(A,[r c]); 
+0

我1 d數組的長度是11139.哪有我利用重塑功能。當我嘗試做B =重塑(A,100,111)我得到一個錯誤錯誤使用==>重塑 要重新構建元素的數量一定不能改變。我甚至不能重塑(A,100,111.39),也不能重塑(A,100,112)。 – user574183

+0

問題是,正如Amro所說,你需要知道預期的行數/列數......如果你期望11100個元素,並且你正在閱讀更多,那麼問題來自於你讀取文件的方式 – Smash

相關問題