MATLAB FREAD/FWRITE

3 binary file-io matlab file fwrite

我想使用matlab的fwrite命令更改大型二进制文件中几个字节的值.我想要做的是使用fopen(文件名,'r +',精度)打开文件,然后使用fread(fid,NUM,'int32')读取文件(这一切都有效).一旦到达我要写入(覆盖)下一个字节值的文件位置,我就使用命令:fwrite(fid,variable_name,'int32').然后我关闭文件:fclose(fid).

好的,那么我回去重新读取文件,这些字节没有改变!

那么这不可能吗?或者'r +'使用错误的东西?

谢谢.

gno*_*ice 7

FOPEN的文档:

如果以更新模式打开文件(具有包含"+"的权限值),则必须在读取和写入操作之间调用fseek或frewind.例如,除非在它们之间调用fseek或frewind,否则不能调用fread后跟fwrite或fwrite后跟fread.

简而言之,您需要在致电FWRITE之前致电FSEEK.事实上,如果您不需要从文件中读取任何内容,我只会使用FSEEK代替您对FREAD的调用.