2012-02-24 68 views
4

在下面的代碼中,我期望文件大小爲4096字節(4kb)是正確的嗎?但實際上文件大小變成1024字節(1kb)!我不明白爲什麼?int32的MATLAB數組和寫入文件

fid = fopen('test.test', 'w', 'b'); 
buff= zeros(1024,1,'int32'); 
fwrite(fid,buff); 
fclose(fid); 
+0

,如果你正在處理的文件,這您可能會對此感興趣 - http://stackoverflow.com/questions/8847866/how-can-i-close-files-that-are-left-open-after-an-error/8847870#8847870 – 2012-02-24 18:44:56

回答

2

的問題是,FWRITE,默認情況下,將數據寫入出作爲'uint8'類型(即四分之一大小的'int32'的)。它不會自動檢測傳遞給它的數據的類型,所以你需要指定輸出的類型在調用FWRITE,像這樣:同樣

fwrite(fid, buff, 'int32');