matlab脚本运行不成功

img


在matlab2016版本中新建脚本写完代码以后运行结果不正确显示文件名,而且看不出来错哪了

【相关推荐】



  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7522371
  • 你也可以参考下这篇文章:matlab生成多个文件夹,并根据文件的文件名粘贴进文件夹的小脚本
  • 您还可以看一下 田万国老师的MATLAB基础入门课程课程中的 单下标转双下标小节, 巩固相关知识点
  • 除此之外, 这篇博客: matlab读取大量文件及MATLAB处理变参数多元非线性方程组中的 循环读取大量文件 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

    前段时间用MATLAB处理txt文件时遇到了一个问题,由于txt文件太多因此需要做成循环来依次处理500(实际上有5000多个)多个txt文件。最主要的问题是fopen的参数是不能含有变量的而且它又不能一次性处理多个文件。所以要想循环处理多个txt文件还是必须在文件名上进行改变。

    另外首先txt文件名必须是连续的能循环读取的,所以首先使用好压对500多个txt文件进行批量命名,这样有助循环:


    对于含变量的文件名此处提出的方法是用字符串数组来解决。

    如下代码:

    clear all;

    a=3;

    b=1;

    testTime=[];

    startTime1=[];

    startAE1=[];

    for c=100:1746

    file_name=[num2str(a) '_' num2str(b)'_' num2str(c)'.txt'];%×¢ÒâÖмäÓпոñ

    fileOut=fopen(file_name);

    y=[];

    line=0;

    while ~feof(fileOut)

       tLine=fgetl(fileOut);

       line=line+1;

       if line==11

       testTime=[testTimestr2double(tLine(18:33))];

       end

       if line==12

         continue;

       end

       if double(tLine(2))>=48&&double(tLine(2))<=57

          %fprintf(fileIn,'%s\r\n',tLine);

          y=[y str2double(tLine)];

          continue;

      end

     

    end

    如上第8行代码:file_name=[num2str(a) '_' num2str(b)'_' num2str(c)'.txt'];

    file_name=[]是一个字符数组,其中一个字符元素都用’’括起来,每个元素之间用空格或,隔开,在matlab中执行上语句可以得到如下结果:


    如上图所示,输出的结果file_name就成了完整的文件名,此时在file_name生成的语句中虽然带了变参数,但是生成后file_name中就不含变参数了而是一个成熟的字符串,然后带入fopen()中便可实现对文件名进行改变,从而循环处理多个不同文件。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^