声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2323|回复: 7

[编程技巧] 数据截断问题

[复制链接]
发表于 2009-6-18 15:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

使用道具 举报

发表于 2009-6-18 16:39 | 显示全部楼层
help fseek

评分

1

查看全部评分

发表于 2009-6-18 19:30 | 显示全部楼层
这么大的数据是有点问题
 楼主| 发表于 2009-6-18 23:09 | 显示全部楼层
谢谢帮助,已经学习了fseek的用法。还想问一个问题,就是fread(fid,size,precision)函数里的precision的用途。假如我有一段ASCII码数据,每8个bytes是一个数据,那么在使用fread函数时,precision应该是什么?
发表于 2009-6-19 08:02 | 显示全部楼层

到底是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 编辑 ]
 楼主| 发表于 2009-6-19 10:49 | 显示全部楼层

回复 5楼 ChaChing 的帖子

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

[ 本帖最后由 wanra 于 2009-6-19 11:14 编辑 ]
发表于 2009-6-19 11:49 | 显示全部楼层

回复 6楼 wanra 的帖子

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

评分

1

查看全部评分

 楼主| 发表于 2009-6-19 13:22 | 显示全部楼层
谢谢ChaChing!!我在读取之后与原始数据比较了一下,应该是对的。再次感谢
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-26 12:20 , Processed in 0.059671 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表