4
在下面的代碼中,我期望文件大小爲4096字節(4kb)是正確的嗎?但實際上文件大小變成1024字節(1kb)!我不明白爲什麼?int32的MATLAB數組和寫入文件
fid = fopen('test.test', 'w', 'b');
buff= zeros(1024,1,'int32');
fwrite(fid,buff);
fclose(fid);
在下面的代碼中,我期望文件大小爲4096字節(4kb)是正確的嗎?但實際上文件大小變成1024字節(1kb)!我不明白爲什麼?int32的MATLAB數組和寫入文件
fid = fopen('test.test', 'w', 'b');
buff= zeros(1024,1,'int32');
fwrite(fid,buff);
fclose(fid);
的問題是,FWRITE,默認情況下,將數據寫入出作爲'uint8'
類型(即四分之一大小的'int32'
的)。它不會自動檢測傳遞給它的數據的類型,所以你需要指定輸出的類型在調用FWRITE,像這樣:同樣
fwrite(fid, buff, 'int32');
,如果你正在處理的文件,這您可能會對此感興趣 - 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