数学建模社区-数学中国

标题: matlab的exist命令在循环语句中的问题 [打印本页]

作者: guohf    时间: 2013-8-21 11:46
标题: matlab的exist命令在循环语句中的问题
我要对一个文件夹中的全部文件进行处理,用了循环语句,但在用exist判断某文件是否存在(若存在进行其他处理)出错。简单程序如下:

clear; clc;
for i = 1:1000;
       file2=['G:\datapressure\xicy2-0' num2str(i)];   %文件xicy2-01,xicy2-02....含有字符
    if exist('file2','file')==2 % 因个别文件不存在,故用这个语句来判断,但整个循环中exist('file2','file')的值全为0,下面语句不执行
        data_all2=importdata(file2);
          data2=data_all2.data;
          .......  
     end
end

若用exist('G:\datapressure\xicy2-01','file') 当文件存在时值是2,不存在值为0。但有上千文件,不能手动处理。请教高手上面程序要怎样修改啊??或者,不用exist也行,只要能判断某文件是否存在,以便对存在文件进行处理就行。先谢了
作者: gt93    时间: 2013-8-21 11:57
fopen()试试。
作者: guohf    时间: 2013-8-21 15:38
gt93 发表于 2013-8-21 11:57
fopen()试试。

能不能具体说明一下,其实我试过用fopen打开文件,但好象不能用。我的文件是fluent导出的ASCII数据(带有标头)。拓展名用'.dat'或'.txt'试过不行。如用下面的程序,也有一些问题(见标红处),上传部分数据,请帮忙看下用什么拓展名?怎样打开?谢谢:
xicy2-01.rar (7.11 KB, 下载次数: 0)

clear; clc;

directory_name = 'G:\datapressure';  %这里直接对目录名赋值了
if isequal(directory_name,0)
    return
end

%files = dir([directory_name,'\*.dat']); %若加拓展名'.dat' 或'.txt',下面的文件数n=0
files = dir([directory_name,'\*']);%不加拓展名,可读出
n=size(files,1),%return
A=[];

for i = 1:n;
     % file2=[directory_name,'\',files(i).name] %用这个命令时,结果是“file2=G:\datapressure\.”,不知为什么?
   
file2=['G:\datapressure\xicy2-0' num2str(i)];   %文件xicy2-01,xicy2-02....含有字符
      if exist(file2,'file')==2
        
          data_all2=importdata(file2);
           data2=data_all2.data;
            .......  
          end
end






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5