xjimm 发表于 2008-1-3 21:28

如果自动判断并跳过不存在的文件

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

[ 本帖最后由 eight 于 2008-1-3 22:02 编辑 ]

re-us 发表于 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

试试

sigma665 发表于 2008-1-3 21:40

楼主的意思应该是不知道具体哪个文件不存在.

eight 发表于 2008-1-3 21:57

原帖由 xjimm 于 2008-1-3 21:28 发表 http://www.chinavib.com/forum/images/common/back.gif
有时由于数据的缺失,导致文件名不连续,例如:1.txt~10.txt ...

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

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

[ 本帖最后由 eight 于 2008-1-3 22:03 编辑 ]

xjimm 发表于 2008-1-3 22:07

我是举例说5.txt这个文件假如不存在,也有可能是其他文件不存在,例如,6.txt不存在
意思是我不知道哪个文件不存在,所以需要判断
能不能这样,fidin=fopen(strcat( num2str(i),'.txt'),'rt');
如果fidin==-1,说明读取文件失败,说明这个文件不存在

eight 发表于 2008-1-3 22:10

原帖由 xjimm 于 2008-1-3 22:07 发表 http://www.chinavib.com/forum/images/common/back.gif
我是举例说5.txt这个文件假如不存在,也有可能是其他文件不存在,例如,6.txt不存在
意思是我不知道哪个文件不存在,所以需要判断
能不能这样,fidin=fopen(strcat( num2str(i),'.txt'),'rt');
如果fidin== ...

当然可以!你自己试试就知道了

xjimm 发表于 2008-1-3 22:11

小西兄说得对

sogooda 发表于 2008-1-12 09:15

原帖由 xjimm 于 2008-1-3 22:07 发表 http://www.chinavib.com/forum/images/common/back.gif
能不能这样,fidin=fopen(strcat( num2str(i),'.txt'),'rt');
如果fidin==-1,说明读取文件失败,说明这个文件不存在
我想到的方法是这样的。
页: [1]
查看完整版本: 如果自动判断并跳过不存在的文件