声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2161|回复: 7

[编程技巧] 如果自动判断并跳过不存在的文件

[复制链接]
发表于 2008-1-3 21:28 | 显示全部楼层 |阅读模式

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

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

x
我想读多个命名规则的文件,用for语句中的“i”来表示文件名的变化,例如:     fidin=fopen(strcat( num2str(i),'.txt'),'rt');
但碰到一个问题,有时由于数据的缺失,导致文件名不连续,例如:1.txt~10.txt这十个文件,其中5.txt这个文件不存在,请问在matlab里面如何自动判断,并跳过不存在的文件?

[ 本帖最后由 eight 于 2008-1-3 22:02 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-1-3 21:35 | 显示全部楼层
temp=0;
for i=1:10
   temp=temp+1;
   if temp~=5
   fidin=fopen(strcat( num2str(i),'.txt'),'rt');
   end
end

试试
发表于 2008-1-3 21:40 | 显示全部楼层
楼主的意思应该是不知道具体哪个文件不存在.
发表于 2008-1-3 21:57 | 显示全部楼层


如果是创建文件,一般不会出现这个情况,估计是程序问题;或者是你根本不存在这个文件,所以读取不到。从你的读取方式来看,应该是read的。至于判断文件是否存在,你在 matlab 里面搜索一下 isexist 或 exist 等就肯定找到了,具体我也记不住,也懒得打开 matlab 了,你自己试试吧

ps:希望大家发帖时尽量表达清楚,我一开始也像二楼那样,认为是创建文件但是失效

[ 本帖最后由 eight 于 2008-1-3 22:03 编辑 ]
 楼主| 发表于 2008-1-3 22:07 | 显示全部楼层
我是举例说5.txt这个文件假如不存在,也有可能是其他文件不存在,例如,6.txt不存在
意思是我不知道哪个文件不存在,所以需要判断
能不能这样,fidin=fopen(strcat( num2str(i),'.txt'),'rt');
如果fidin==-1,说明读取文件失败,说明这个文件不存在
发表于 2008-1-3 22:10 | 显示全部楼层
原帖由 xjimm 于 2008-1-3 22:07 发表
我是举例说5.txt这个文件假如不存在,也有可能是其他文件不存在,例如,6.txt不存在
意思是我不知道哪个文件不存在,所以需要判断
能不能这样,fidin=fopen(strcat( num2str(i),'.txt'),'rt');
如果fidin== ...


当然可以!你自己试试就知道了
 楼主| 发表于 2008-1-3 22:11 | 显示全部楼层
小西兄说得对
发表于 2008-1-12 09:15 | 显示全部楼层
原帖由 xjimm 于 2008-1-3 22:07 发表
能不能这样,fidin=fopen(strcat( num2str(i),'.txt'),'rt');
如果fidin==-1,说明读取文件失败,说明这个文件不存在

我想到的方法是这样的。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-18 10:53 , Processed in 0.059783 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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