QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 1473|回复: 2
打印 上一主题 下一主题

matlab的exist命令在循环语句中的问题

[复制链接]
字体大小: 正常 放大
guohf        

11

主题

9

听众

148

积分

升级  24%

  • TA的每日心情
    奋斗
    2019-10-22 13:59
  • 签到天数: 36 天

    [LV.5]常住居民I

    自我介绍
    erv
    跳转到指定楼层
    1#
    发表于 2013-8-21 11:46 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    我要对一个文件夹中的全部文件进行处理,用了循环语句,但在用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也行,只要能判断某文件是否存在,以便对存在文件进行处理就行。先谢了
    zan
    转播转播 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    gt93        

    47

    主题

    18

    听众

    880

    积分

    白凤

  • TA的每日心情
    慵懒
    2018-4-6 14:09
  • 签到天数: 201 天

    [LV.7]常住居民III

    自我介绍
    数学爱好者

    社区QQ达人

    群组Matlab讨论组

    群组Linux推广

    群组第三届数模基础实训

    群组2013年数学建模国赛备

    群组数学建摸协会

    fopen()试试。

    点评

    guohf  能不能具体说明一下,其实我试过用fopen打开文件,但好象不能用。我的文件是fluent导出的ASCII数据(带有标头)。拓展名用'.dat'或'.txt'试过不行。如用下面的程序,也有一些问题(见标红处),上传部分数据,请帮忙  详情 回复 发表于 2013-8-21 15:38
    回复

    使用道具 举报

    guohf        

    11

    主题

    9

    听众

    148

    积分

    升级  24%

  • TA的每日心情
    奋斗
    2019-10-22 13:59
  • 签到天数: 36 天

    [LV.5]常住居民I

    自我介绍
    erv
    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

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-5-26 04:17 , Processed in 0.538674 second(s), 70 queries .

    回顶部