2012-02-24 65 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');