声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 6889|回复: 5

[编程技巧] matlab fscanf读入数据的格式问题

[复制链接]
发表于 2007-8-12 12:03 | 显示全部楼层 |阅读模式

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

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

x
有一组数据需要读入,数据格式为3333.4581.
但用fscanf读入时不能像输出时那样人为控制格式,只能%f或%g,读入
后数据变成3.3335*10^3。请问如何解决。
按照字符串读入,再转化为数字,问题相同。
请高手出手解决啊!!

[ 本帖最后由 eight 于 2007-8-12 12:12 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-8-12 12:13 | 显示全部楼层
原帖由 heikeyang 于 2007-8-12 12:03 发表
有一组数据需要读入,数据格式为3333.4581.
但用fscanf读入时不能像输出时那样人为控制格式,只能%f或%g,读入
后数据变成3.3335*10^3。请问如何解决。
按照字符串读入,再转化为数字,问题相同。
请高手出 ...


试试 %8.4f 这样的方式
 楼主| 发表于 2007-8-12 12:21 | 显示全部楼层
fscanf读入时不能用format规定%f的格式。
发表于 2009-7-2 13:07 | 显示全部楼层
我也碰到这样的问题,原始数据test.txt中存的都是类似于0.00015387269845这样的数据,我要把它读出逐一存到一个数组中,
fid=fopen('test.txt','r');
A=fscanf(fid,'%1.16f',1024);
fclose(fid);
结果显示
A
   ..
将fscanf中的数据格式改为%f,则A中有数据,只是自动进行了四舍五入,比如上面的数据,显示为0.0002,不知道为什么?
发表于 2009-7-2 13:44 | 显示全部楼层
help format & help fscanf
试试
A=fscanf(fid,'%16.14f',1024);
format long e
发表于 2009-7-2 18:03 | 显示全部楼层
谢谢chaching,:@P ,我试试!
人生最大的幸福就是能帮助别人,祝福你每天都拥有这份幸福!:@)
向你学习,也来拥有这份幸福!:@)
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-10-1 05:30 , Processed in 0.053567 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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