声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1428|回复: 8

[编程技巧] 读取文件出现错误

[复制链接]
发表于 2008-10-12 15:16 | 显示全部楼层 |阅读模式

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

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

x
读取文件出现错误
%打开训练样本数据
frin_para=fopen(sprintf('input_para%s%s',ModelNo,'.txt'),'r');
frout_para=fopen(sprintf('output_para%s%s',ModelNo,'.txt'),'r');
%读取样本数据
[p,count]=fscanf(frin_para,'%f',[InputDim,data_num]);
[t,count]=fscanf(frout_para,'%f',[OutputDim,data_num]);
这两行出错,出错信息为:
?? Error using ==> fscanf
Invalid fid.
Error in ==> E:\LmTrain.m
On line 71  ==> [p,count]=fscanf(frin_para,'%f',[InputDim,data_num]);
请问这怎么错了?
回复
分享到:

使用道具 举报

发表于 2008-10-12 21:54 | 显示全部楼层

回复 楼主 luweiping26 的帖子

楼主给的讯息可能不够, 但猜测不是fscanf出错, 而是fopen出错
请检查frin_para及frout_para的值是否为-1
若是的话, 试试以下fopen方式
frin_para=fopen(sprintf('input_para%s%s',num2str(ModelNo),'.txt'),'r');
frout_para=fopen(sprintf('output_para%s%s',num2str(ModelNo),'.txt'),'r');

评分

1

查看全部评分

 楼主| 发表于 2008-10-13 15:22 | 显示全部楼层

回复 沙发 ChaChing 的帖子

谢谢你的回复!
不过frin_para及frout_para的值是-1,
frin_para=fopen(sprintf('input_para%s%s',num2str(ModelNo),'.txt'),'r');
frout_para=fopen(sprintf('output_para%s%s',num2str(ModelNo),'.txt'),'r');
这样仍是一样的错误提示。
请问一下,打开与读取文件与数据类型是不是有关,我的数据全是下列形式:
0.1603        0.5644        0.2315        0.7137        0.0118        0.0418        0.2145        0.2117
每行有8个数据,有很多行
发表于 2008-10-13 15:40 | 显示全部楼层

回复 板凳 luweiping26 的帖子

fid=-1说明文件没有正确打开。
请检查sprintf(...)的输出结果是否正确(是否可与你的文件名对应)。
发表于 2008-10-13 17:47 | 显示全部楼层

回复 板凳 luweiping26 的帖子

fid=-1表示fopen时可能找不到档案
建议楼主检查档名及path对吗? 档名是input_para1.txt吗?
建议执行sprintf('input_para%s%s',num2str(ModelNo),'.txt')
结果是你要的档名吗?
 楼主| 发表于 2008-10-13 20:41 | 显示全部楼层

回复 5楼 ChaChing 的帖子

执行sprintf('input_para%s%s',num2str(ModelNo),'.txt')之后

ans =

input_para-1.txt
而我的文件名为input_para.txt,这是为什么啊?
 楼主| 发表于 2008-10-13 21:08 | 显示全部楼层
文件放在e盘下,如果这样写
frin_para=fopen('e:\input_para.txt','r')
frout_para=fopen('e:\output_para.txt','r')
结果是
frin_para =

     3
frout_para =

     4
这是怎么回事呢?
发表于 2008-10-13 23:39 | 显示全部楼层

回复 7楼 luweiping26 的帖子

打开(fopen)与数据类型无关, 仅与路径有关
若fopen没成功, 其fid就会被设为-1, fid不等於1就对了

还有ModelNo到底是什麽? ModelNo=-1?
本以为你是用ModelNo来控制档案名称, 也就是说由它控制要读input_para1.txt或input_para2.txt或input_para3.txt ...
若不是, 直接给定就好了, 当然路径也要给定

[ 本帖最后由 ChaChing 于 2008-10-13 23:53 编辑 ]

评分

1

查看全部评分

 楼主| 发表于 2008-10-14 10:56 | 显示全部楼层

回复 8楼 ChaChing 的帖子

谢谢你啊,现在已经解决这个问题了。:@)
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-17 20:29 , Processed in 0.058115 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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