读取文件出现错误
读取文件出现错误%打开训练样本数据
frin_para=fopen(sprintf('input_para%s%s',ModelNo,'.txt'),'r');
frout_para=fopen(sprintf('output_para%s%s',ModelNo,'.txt'),'r');
%读取样本数据
=fscanf(frin_para,'%f',);
=fscanf(frout_para,'%f',);
这两行出错,出错信息为:
?? Error using ==> fscanf
Invalid fid.
Error in ==> E:\LmTrain.m
On line 71==> =fscanf(frin_para,'%f',);
请问这怎么错了?
回复 楼主 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');
回复 沙发 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个数据,有很多行
回复 板凳 luweiping26 的帖子
fid=-1说明文件没有正确打开。请检查sprintf(...)的输出结果是否正确(是否可与你的文件名对应)。
回复 板凳 luweiping26 的帖子
fid=-1表示fopen时可能找不到档案建议楼主检查档名及path对吗? 档名是input_para1.txt吗?
建议执行sprintf('input_para%s%s',num2str(ModelNo),'.txt')
结果是你要的档名吗?
回复 5楼 ChaChing 的帖子
执行sprintf('input_para%s%s',num2str(ModelNo),'.txt')之后ans =
input_para-1.txt
而我的文件名为input_para.txt,这是为什么啊? 文件放在e盘下,如果这样写
frin_para=fopen('e:\input_para.txt','r')
frout_para=fopen('e:\output_para.txt','r')
结果是
frin_para =
3
frout_para =
4
这是怎么回事呢?
回复 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 编辑 ]
回复 8楼 ChaChing 的帖子
谢谢你啊,现在已经解决这个问题了。:@)
页:
[1]