Re: [问题] BINARY档案读写

楼主: Cypresslin (啊哈哈~~)   2012-10-07 01:22:39
这状况可能是这样的:
你的 OPEN(27,FILE=FNAME,status='old',FORM='UNFORMATTED')
忽略了存取方式(access)的指定,所以会以默认的循序(sequential)方式读/写资料。
而Fortran循序档在资料头尾各会有着一个描述资料长度的4-bytes整数,若我写入三个
双精度实数,那结构会是这样:24 双精度实数 双精度实数 双精度实数 24
它的总大小会是4+8+8+8+4,每次的read/write都会对应一组头尾的Header/Terminator,
所以若MATLAB在写出资料时不会自动加上这样的长度描述资料,那读取时就会出问题。
怎么判断?只要计算变量大小*数量与实际档案大小就知道有没有其他东西在里面了。
从你的回应来看,
我猜MATLAB应该是用串流(stream)的方式输出资料,所以指定binary就可以正常读取,
这用法等同于其他家编辑器的:
open(27,file=FNAME,status='old',form='unformatted',access='stream')
此外,若你的资料型别都很一致(比如说都是4-bytes的整数)
那也可以指定access='direct'与recl来做随机存取。
作者: prolog (波卡)   0000-00-00 00:00:00
谢谢这么详细的回答
作者: chien0115   2011-01-11 10:45:00
推一个

Links booklink

Contact Us: admin [ a t ] ucptt.com