wanra 发表于 2009-6-18 15:59

数据截断问题

想把感兴趣的数据从一个很大的数据中提取出来。例如:有一个记录了两个小时的数据,但是我只对第二个小时的数据感兴趣,可是由于数据量太大,用fread读取时,只能取前25分钟的数据,这样无论如何也得不到感兴趣的数据。请问大侠们有没有什么方法,可以帮我提取出感兴趣的数据。谢谢啦!

ChaChing 发表于 2009-6-18 16:39

help fseek

VibrationMaster 发表于 2009-6-18 19:30

这么大的数据是有点问题

wanra 发表于 2009-6-18 23:09

谢谢帮助,已经学习了fseek的用法。还想问一个问题,就是fread(fid,size,precision)函数里的precision的用途。假如我有一段ASCII码数据,每8个bytes是一个数据,那么在使用fread函数时,precision应该是什么?

ChaChing 发表于 2009-6-19 08:02

原帖由 wanra 于 2009-6-18 23:09 发表 http://www.chinavib.com/forum/images/common/back.gif
...有一段ASCII码数据,每8个bytes是一个数据...
到底是ASCII還是binary資料? 兩者是有差異的! 請參考
fread - Read binary data from file
fscanf - Read formatted data from file

另外是8个bytes还是个8bits? 8bits有schar, uchar, int8, unit8, 视原始资料的内容而定

[ 本帖最后由 ChaChing 于 2009-6-19 08:08 编辑 ]

wanra 发表于 2009-6-19 10:49

回复 5楼 ChaChing 的帖子

您好。我的数据具体是这样的。前6461个bytes是一些数据资料的描述信息,而这些信息有的是用ASCII码表示,有的是二进制表示。从6462开始才是真正的数据。每一个数据都是2个byte,应该是二进制数据。这样的话,还可以用fread函数吗?我是这样读的,是否正确?
offset=fread(fid,6461,'uint8');                            %前6461个字节是患者的信息,因此作6461个偏置
=fread(fid,20000,'ushort');                  %读取偏置后的一部分数据

[ 本帖最后由 wanra 于 2009-6-19 11:14 编辑 ]

ChaChing 发表于 2009-6-19 11:49

回复 6楼 wanra 的帖子

建议试试看!
fseek(fid,6462,'bof');
=fread(fid,200,'ushort');
先读一段判断下资料的合理性!

wanra 发表于 2009-6-19 13:22

谢谢ChaChing!!我在读取之后与原始数据比较了一下,应该是对的。再次感谢
页: [1]
查看完整版本: 数据截断问题