如果自动判断并跳过不存在的文件
我想读多个命名规则的文件,用for语句中的“i”来表示文件名的变化,例如: fidin=fopen(strcat( num2str(i),'.txt'),'rt');但碰到一个问题,有时由于数据的缺失,导致文件名不连续,例如:1.txt~10.txt这十个文件,其中5.txt这个文件不存在,请问在matlab里面如何自动判断,并跳过不存在的文件?
[ 本帖最后由 eight 于 2008-1-3 22:02 编辑 ] temp=0;
for i=1:10
temp=temp+1;
if temp~=5
fidin=fopen(strcat( num2str(i),'.txt'),'rt');
end
end
试试 楼主的意思应该是不知道具体哪个文件不存在. 原帖由 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 编辑 ] 我是举例说5.txt这个文件假如不存在,也有可能是其他文件不存在,例如,6.txt不存在
意思是我不知道哪个文件不存在,所以需要判断
能不能这样,fidin=fopen(strcat( num2str(i),'.txt'),'rt');
如果fidin==-1,说明读取文件失败,说明这个文件不存在 原帖由 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:07 发表 http://www.chinavib.com/forum/images/common/back.gif
能不能这样,fidin=fopen(strcat( num2str(i),'.txt'),'rt');
如果fidin==-1,说明读取文件失败,说明这个文件不存在
我想到的方法是这样的。
页:
[1]