【问题标题】:How do i open a number of xlsx files when I only know part of the filename in Matlab?当我在 Matlab 中只知道部分文件名时,如何打开多个 xlsx 文件?
【发布时间】:2016-12-03 15:03:43
【问题描述】:

我正在使用 Matlab 2013b。我在一个目录中有一个 excel 文件列表,我想在一个循环中打开选定的文件以读出数据。 但是,我只知道每个文件名的开头,而不知道结尾。我有一个数字向量,它提供文件名的标识部分(文件编号),我想一个一个地循环遍历 excel 文件,打开它们并提取数据,然后关闭它们。 有500个文件,每个格式:img_****ff*******.xlsx,其中第一组星号是我的文件号,而第二组星号是未知。

到目前为止,我已经尝试使用以下方法列出目录中的内容:

list=dir('E:\processed\Img*');
filenames={list.name}

这提供了完整的文件名。 然后我尝试在一个循环中创建我知道存在的文件名部分:

x = sprintf('Img_%d_FF_',img(1,1));

然后我想我可以使用“查找”在上面的“文件名”结构中查找我的部分文件名/字符串。不过,我认为我的代码不适合这种数据类型:

index = find(strcmp({list.name}, x)==1)

【问题讨论】:

    标签: matlab directory find


    【解决方案1】:

    你已经很接近了,但问题是strcmp 比较整个字符串,因为你只有开始部分,所以它不会匹配。我将使用 strncmp 仅比较字符串的第一个 n 字符。我们可以根据你的字符串x的长度来确定n是什么。

    matches = strncmp({list.name}, x, numel(x));
    thisfile = list(matches).name;
    

    【讨论】:

      猜你喜欢
      • 2014-07-25
      • 1970-01-01
      • 1970-01-01
      • 2011-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-09
      相关资源
      最近更新 更多