fid = fopen('temp.txt', 'wb');%把wt换成wb,以和rb对应,或者都改成wt,总之要对应
这个问题与主要和文本文件的编码有关,具体的我也不是很清楚,里面应该是很复杂的,何况还有数值溢出的问题和matlab函数的内部运行机制有关。
wt中的t表示文本文件是ansi编码,保存时存的是字符的acsii值,对于数字占1个字节
你新建一个txt文件,里面写一个1,保存时保存的是1的ascii值49的二进制表示,保存后文件大小是1字节,如果是12,他有两个字符,分别是1和2的ascii值的二进制表示,文件大小就是2字节
你可以试试。
wb中的b表示二进制文件,他直接存的是这个数的二进制表示,即对于12,他直接存的是12的二进制表示,而非存两个字符,1和2,因此一般来说二进制文件更小,对计算机来说效率更高。
实际上你不用搞得那么清楚,只要保证你读和写的方式是一致的,基本就不会出现你那样的问题。
仅供参考,满意请采纳,谢谢
zhaodashiba